c++链表和c没啥区别
struct Node{
int id;
Node *next;
}Lnode,*Linklist;
定义了节点
当我们用的时候需要先建立链表:
Linklist l;
int x;
//建立链表
l=new Lnode;
Linklist p,q;
l->next=NULL;
p=l;
for(int i=0;i<10;i++){
Linklist q=new Lnode;
cin>>x;
q->id=x;
p->next=q;
p=p->next;
}
p->next=NULL;
这样就有了链表,现在链表里有10个节点,每个节点里头有个自己的id号
现在我们做个基本操作,比如说找找看id=6的那个节点后面的节点的id
Linklist s;
s=l->next;
while(s&&s->id!=6){
s=s->next;
}
这样s指向了id=6的节点或者根本没有这样的节点
if(s->id==6){
s=s->next;
cout<<s->id<<endl;
}
其实s->next也不一定有,懒得写了。其他的暂时没想起来啥地方和c不一样,如果题目不要求用链表就用STL最好用啊,明确要求了没办法了再用。
头插和尾插需要注意一下,有的时候用头插有的时候用尾插,然后删除的时候,单链表双链表的也都不一样,画画图的再做总好些。