• 注册
当前位置:1313e > 默认分类 >正文

c语言如何创建一个链表(尾插法)

本文介绍一种本人常用的较为简单,比较标准的一种创建并使用链表的方法,尾插法,直接用代码演示了
文末有完整代码
在这里插入图片描述

导入所需要的头文件

#include
#include
#include

创建结构体

typedef struct LNode
{int data;//结点的数据域struct LNode* next; //结点的指针域
}LNode, * List;//List为指向结构体LNode的指针类型

主函数

int main()
{List L;L = (LNode*)malloc(sizeof(LNode));//为头结点动态分配内存空间L->next = NULL;//头节点不储存数据LNode* p = L;//创建一个p指针首先指向头节点int data;while (scanf("%d", &data) != -1) {//尾插法创建链表,输入一些正整数数据,以-1代表结束if (data < 0)break;LNode* temp = (LNode*)malloc(sizeof(LNode));//为输入的数据节点动态分配内存空间//申请的是指针LNode*型,链表每个结点类型需统一temp->next = NULL;temp->data = data;p->next = temp;//p的next指针指向新建的节点p = p->next;//让p指向p的下一节点,保证它指向链表尾部}//循环结束后,链表创建完成p = L->next;//让p指针指向创建的链表的头指针L的next,因为头节点没有数据,所以从L->next开始while (p) {	//输出链表								printf("%d ", p->data);p = p->next;}
}

完整代码

#include
#include
#include
typedef struct LNode
{int data;//结点的数据域struct LNode* next; //结点的指针域
}LNode, * List;//List为指向结构体LNode的指针类型
int main()
{List L;L = (LNode*)malloc(sizeof(LNode));//为头结点动态分配内存空间L->next = NULL;//头节点不储存数据LNode* p = L;//创建一个p指针首先指向头节点int data;while (scanf("%d", &data) != -1) {//尾插法创建链表,输入一些正整数数据,以-1代表结束if (data < 0)break;LNode* temp = (LNode*)malloc(sizeof(LNode));//为输入的数据节点动态分配内存空间//申请的是指针LNode*型,链表每个结点类型需统一temp->next = NULL;temp->data = data;p->next = temp;//p的next指针指向新建的节点p = p->next;//让p指向p的下一节点,保证它指向链表尾部}//循环结束后,链表创建完成p = L->next;//让p指针指向创建的链表的头指针L的next,因为头节点没有数据,所以从L->next开始while (p) {	//输出链表								printf("%d ", p->data);p = p->next;}
}

测试结果
在这里插入图片描述

在这里插入图片描述

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 162202241@qq.com 举报,一经查实,本站将立刻删除。

最新评论

欢迎您发表评论:

请登录之后再进行评论

登录