C语言如何创建单链表?C语言创建单链表如下:
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
#include "iostream.h"
typedef struct node
{
intdata;
node * next;
}node , * List;
void create(int n)
{
int c;
List s,L;
L=(List)malloc(sizeof(node));
L-next=NULL;
printf("请输入第1个数据:");
scanf("%d",c);
L-data=https://www.04ip.com/post/c;
for(int i=2;i=n;i++)
{
s=(List)malloc(sizeof(node));
printf("请输入第%d个数据:",i);
scanf("%d",c);
s-data=https://www.04ip.com/post/c;
s-next=L;
L-next =s;
}
printf("链表创建成功!");
}
void main()
{
int n;
printf("请你输入链表的个数:");
scanf("%d",n);
create(n);
}
单链表创建方法:
单链表的建立有头插法、尾插法两种方法 。
1. 头插法
单链表是用户不断申请 存储单元和改变链接关系而得到的一种特殊 数据结构,将链表的左边称为链头,右边称为链尾 。头插法建单链表是将链表右端看成固定的,链表不断向左延伸而得到的 。头插法最先得到的是尾结点 。
由于链表的长度是随机的,故用一个while循环来控制链表中结点个数 。假设每个结点的值都大于O,则循环条件为输入的值大于o 。申请 存储空间可使用malloc()函数实现,需设立一申请单元 指针 , 但malloc()函数得到的指针并不是指向 结构体的指针,需使用 强制类型转换,将其转换成结构体型指针 。刚开始时,链表还没建立,是一空链表,head 指针为NULL 。
链表建立的过程是申请空间、得到数据、建立链接的循环处理过程 。
2. 尾插法
若将链表的左端固定,链表不断向右延伸,这种建立链表的方法称为尾插法 。尾插法建立链表时,头 指针固定不动,故必须设立一个搜索指针,向链表右边延伸,则整个算法中应设立三个链表指针,即头指针head、搜索指针p2、申请单元指针pl 。尾插法最先得到的是 头结点 。
C语言建立带头结点的单链表单链表c语言创建单向链表的函数的生成有2种方式c语言创建单向链表的函数:头插法和尾插法 。
1、头插法
/*********************************************************************
* 函数名称:linklist *CreateLinklistHead()
* 函数功能:利用头插法创建链表
* 参数:无
* 返 回 值:创建完链表后的链表头结点
* 说明:无
*********************************************************************/
extern linklist *CreateLinklistHead()
{
int x, i, nodeNum;
linklist *head, *temp;// 头结点与临时结点
head = (linklist *)malloc(sizeof(linklist));// 生成表头结点
head-next = NULL;// 给表头结点的指针域赋值
printf("请输入链表中结点的个数:");
scanf("%d", nodeNum);
for(i=1; i=nodeNum; i++)
{
printf("请输入第 %d 个结点的数据:", i);
scanf("%d", x);
temp = (linklist *)malloc(sizeof(linklist));// 生成新的结点
temp-data = https://www.04ip.com/post/x;// 对新结点的数据域赋值
// 将新结点插到头结点之后
temp-next = head-next;
head-next = temp;
}
return head;// 返回新建链表的头结点
}
2、尾插法
/*********************************************************************
* 函数名称:linklist *CreateLinklistRear()
* 函数功能:利用尾插法创建链表
* 参数:无
* 返 回 值:创建完链表后的链表头结点
* 说明:无
*********************************************************************/
extern linklist *CreateLinklistRear()
推荐阅读
- zoe直播录屏,在线录屏直播
- 如何打造万能营销模式创新的简单介绍
- 公众号李怎么加文章链接,如何在公众号文章添加链接
- 主机游戏挥刀动作,主机游戏挥刀动作怎么设置
- go语言编写mysql go语言编写mysql插件
- 怎么上网看电视,如何上网看电视直播
- jquery与刷新上传,jqueryload方法,刷新网页
- c代理服务器,代理服务器选项
- linux命令逐行输出 linux输出行号