数据结构之单链表实现及细节论述

#什么是单链表
组成成员:头结点+(数据域+指针域)*n(n>0)。
头结点:数据域+指针域,但是数据域中无数据,指针域中存放另一个结点的数据域地址。
结点:数据域+指针域,两者的统称。
数据域:用来存放元素,类型包括且不限(int,char,以类为类型的元素等等)
一般用data表示。
指针域:存放另一个结点数据域的地址,用以链接两个结点,形成链表。一般用next表示。
##单链表创建:
以代码为例:
typedef struct student{//因为是结点,所以用结构体来包含两者。
int data;
student next;//必须用指针,因为指针域存放的是下一个结点的数据域地址
}*stu; //定义一个指针变量,原因:1.方便,其后用new创建动态空间所返回的是指针,所以用指针来接收较好,
typedef:在此作用为此结构体定义的结构体变量和结构体指针变量所表示的含义变化为结构体类型及:*stu=struct student;
所以需要用结构体指针变量时需要:*stu s;
此时s才作为结构体指针调用结构体中元素。(注意:s为指针,而不是变量)
---------------------------------------------------------------------------上面为定义一个结点。
##创建单链表
void Build_stu(stu &s,int a[]){//地址传递,数组a中存放初始化的值。
stu s1;//s1为指针,和s差不多,只不过是值传递。
s=new student;//创建一个类型为student的动态空间并将指向此空间首地址的指针返回且赋值给s(s为指针)
s->data=NULL;//->是指向成员运算符
for(int i=0;i<n;i++){
s1=new student;
s1->data=a[i];
s1->next=s->next;//插入在头结点后面
s->next=s1;//将头结点的next变成新的结点的地址
}
}
其他的遍历,插入,查找就不一一讲解不难理解的。
PS:附上简单的学生信息存储及操作的代码。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值