谁知道怎么实现c++单链表的创建与基本操作
完整的,不是单独的算法
追问:能不能举个例子,创建一个简单的单链表,其中包含插入操作。
完整的,不是单独的算法
追问:能不能举个例子,创建一个简单的单链表,其中包含插入操作。
答案:Blog里面有这样的例子 有兴趣去看看。/*-------------------------------------------------------------*/
/* main.cpp 数据结构-动态链表 */
/* Written By mrandexe */
/*-------------------------------------------------------------*/
#include <iostream>
using namespace std;typedef struct stu
{
int Num;
char Name[10];
struct stu *Next;
}student;student *create()
{
int DataNum = 1;
char Q[10]="Q";
student *Head, *p1, *p2;
Head = (student *)malloc(sizeof(student)); //申请内存空间
if (Head==NULL)
{
cout << "申请内存空间失败!";
}
else
{
Head->Num = DataNum;
cout << "请输入" << DataNum << "号同学姓名和分数:(输入Q退出)";
cin >> Head->Name;
if (0==strcmp(Head->Name, Q))
{
return NULL;
}
Head->Next = NULL;
p2 = Head;while (1)
{
DataNum++;
p1 = (student *)malloc(sizeof(student)); //申请内存空间
p1->Num = DataNum;
cout << "请输入" << DataNum << "号同学姓名和分数:(输入Q退出)";
cin >> p1->Name;
if (0==strcmp(p1->Name, Q))
{
break;
}
p1->Next = NULL;
p2->Next = p1;
p2 = p1;
}
}
return Head;
}void print(student *L)
{
do
{
cout << L->Num << "号同学姓名:" << L->Name << endl;
L = L->Next;
} while (L!=NULL);
}int main()
{
student *H;
H = create();
if (H != NULL)
{
print(H);
}return 0;
}用STL里面提供的比较方便,使用如下:#include<list>#include<iostream>using namespace std;void main(){list<int> mylist;……;}具体的操作包括:
本文来自CSDN博客,转载请标明出处: http://blog.csdn.net/mrandexe/
assign() | 给list赋值 |
back() | 返回最后一个元素 |
begin() | 返回指向第一个元素的迭代器 |
clear() | 删除所有元素 |
empty() | 如果list是空的则返回true |
end() | 返回末尾的迭代器 |
erase() | 删除一个元素 |
front() | 返回第一个元素 |
get_allocator() | 返回list的配置器 |
insert() | 插入一个元素到list中 |
max_size() | 返回list能容纳的最大元素数量 |
merge() | 合并两个list |
pop_back() | 删除最后一个元素 |
pop_front() | 删除第一个元素 |
push_back() | 在list的末尾添加一个元素 |
push_front() | 在list的头部添加一个元素 |
rbegin() | 返回指向第一个元素的逆向迭代器 |
remove() | 从list删除元素 |
remove_if() | 按指定条件删除元素 |
rend() | 指向list末尾的逆向迭代器 |
resize() | 改变list的大小 |
reverse() | 把list的元素倒转 |
size() | 返回list中的元素个数 |
sort() | 给list排序 |
splice() | 合并两个list |
swap() | 交换两个list |
unique() | 删除list中重复的元素 |