数据结构--单链表

来源:互联网 发布:js 延迟1s 编辑:程序博客网 时间:2024/06/06 18:03

数据结构--单链表

在数据结构中 链表学习最为基础

typedef struct Lnode{
int no;
struct Lnode *next;
}LinkList;

在链表的创建中,需要存储数据时先为当前指针申请存储空间,即一个结点。例:

q=(LinkList *)malloc(sizeof(LinkList)); //申请存储空间

再输入数据 例:cin>>q->no;//输入数据

子函数例:

LinkList *CreateList()
{
LinkList *q,*p,*L;
L=(LinkList *)malloc(sizeof(LinkList));//申请首结点地址
// L->next=NULL;//网上给出的是指向空
cin>>L->no; //第一个结点数据
p=L; //将p指向首结点
while(p->no!=-1)
{
q=(LinkList *)malloc(sizeof(LinkList));//再申请存储空间
cin>>q->no; //输入数据
p->next=q; //将q添加到链表的末端 此时的p指向的是链表末端结点
p=q; //p指向q的结点
}
p->next=NULL;
return L;
}

注:

p、q、L都是指针变量,指针变量指向的是一个地址,当p=q时,不是把q的指向的数据赋值给p,而是将q的指向的地址赋值给p,所以p指向了q所指的结点,即完成了指针的后移。

输出函数 例:

void Output(LinkList *L)
{
while(L->next!=NULL)
{
cout<<L->no<<" ";
L=L->next;
}
cout<<endl;
}

主函数 例:
int main()
{
LinkList *L;
L=CreateList();
Output(L);
return 0;
}







0 0