您的位置:首页 > 理论基础 > 数据结构算法

数据结构--单链表

2016-02-14 16:34 316 查看
数据结构--单链表

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

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;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: