c语言链表自定义结束符,数据结构C语言实现----创建一个链表

链表的知识点,我就不多说了

写这篇文章也是作为一种学习笔记,为了以后复习好用

所以我就简单说一下,我在这边遇到的一些问题和解决方案

1.创建一个链表就是:头指针-->结点1-->结点2-->结点3-->............

2.新创建一个结点,比如叫它New_node,其实就是在一个地方申请了一块空间,在这块空间放进去一个数据和指针,我们再创建一个节点时还叫

New_node,虽然名字一样,但它不会去覆盖第一个结点,因为它又会去申请一块空间,往里面放入指针和数据,也就是说,当第二个结点申请成功时

第一个结点就不再叫New_node了,他只是一块空间

3.头指针和第一个结点是相等的,比如说头指针是L,那么L->date == 第一个结点里面的数据

代码如下:

#include

#include

typedef struct Node

{

char date;

struct Node *next;

} Node , *LinkList;

LinkList creat_linklist(int n)//创建一个长度为n的单链表

{

LinkList New_node;//新节点名称

LinkList Tail_node;//最后一个节点名称

LinkList Head_node = NULL;//头节点

char c;

for (size_t i = 0; i < n; i++)

{

printf("请输入第%d个节点的数据:",i+1);

scanf("%c", &c);//读取要插入的字符

fflush(stdin);//清空缓存

New_node = (LinkList)malloc( sizeof(Node) );//为新节点申请一块空间

New_node->date = c;

New_node->next = NULL;//顺序插入的每个节点后面都没有元素

if ( Head_node==NULL )

{

Head_node = New_node;//如果插入的节点是第一个节点,就挂在头节点后面

}else

{

Tail_node->next = New_node;//若插入的节点不是第一个节点,就挂在最后一个节点的后面

}

Tail_node = New_node;//插入新节点后,这个已经插入的最新节点就成为了最后一个节点

}

return Head_node;

}

int main()

{

LinkList L;

int n;

printf("请输入链表节点个数:");

scanf("%d",&n);

fflush(stdin);//清空缓存

L = creat_linklist(n);

//打印单链表

while ( L != NULL )

{

printf("%c" , L->date);

L = L->next;

}

return 0;

}

运行结果:

119e8a70b9c87587d4822c34178ba9a8.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值