哪位高手给我详解下C语言链表的原理和关键操作,一直都搞不懂的哦。
发布网友
发布时间:2022-06-05 06:56
我来回答
共3个回答
热心网友
时间:2023-11-10 02:30
你是不会自己编链表么,如果不会的话,我可以给你编辑链表的模板,自己多学学,多写一写,自然就熟练了,如果不懂链表结构原理的话,建议自己看看数据结构的书上讲的链表,挺详细的。
单链表:
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int date;
struct node *next;
}slnode,*Linklist;
void creat_list(Linklist H)//创建链表,由于实参传值使L指向了一个空节点从而成为头节点指针
{
Linklist p, p1;
int n;
cout<<"请输入结点数"<<endl;
cin>>n;
H->date=n;
cout<<"请输入结点数据"<<endl;
p1 = H;//使p1具有了空间
for(int i=0;i<n;i++)
{
p=(Linklist)malloc(sizeof(slnode));
p->next = NULL;
cin>>p->date;
H->next = p;
H=p;//L指向了最后节点的数据域
};
H=p1;//使尾指针指向了最后节点的数据域
}
void display_list(Linklist H)//输出链表
{
cout<<"输出"<<endl;
Linklist p;
p = H-> next;
for(int i=0;i<H->date;i++)
{
cout<<p->date;
cout << ' ';cout<<'\n';
p = p -> next;
}
}
void main()
{
slnode a;//a是空结构变量
Linklist p;//p是指针
p = &a;//p指向了一个空节点
creat_list(p);//传的是结构变量的地址
display_list(p);
}
还有就是创建链表多在纸上画画指针节点的关系,关系弄懂了,链表自然很明了。
热心网友
时间:2023-11-10 02:30
你把链表当作火车...车厢就是数据域,车厢间的钩子就是指针域...重要的操作有删除,插入,查找!
热心网友
时间:2023-11-10 02:30
加我为好友我空间里写了篇给新手的链表总结文章