C语言实现单链表的创建和添加结点
来源:互联网 发布:c语言输出等腰三角形 编辑:程序博客网 时间:2024/05/16 02:18
#include<stdio.h>
#include<stdlib.h>
//单链表有头结点的链表
typedef int ElemType;
typedef struct node
{
ElemType data;
struct node *next;
}Node, *LINK;
LINK create()//创建一个链表
{
//所以创建结点的时候需要一个尾结点,便于实现尾部插入
LINK phead = (LINK)malloc(sizeof(Node));
LINK pend, pnew;
ElemType data;
phead->next = NULL;
pend = phead;
printf("请输入数据:\n");
scanf_s("%d", &data);
while (data != 0)
{
pnew = (LINK)malloc(sizeof(Node));
pnew->data = data;
pnew->next = NULL;
pend->next = pnew;
pend = pnew;
scanf_s("%d", &data);
}
return phead;
}
void display(LINK phead)//遍历链表
{
LINK ptemp = (LINK)malloc(sizeof(Node));
ptemp = phead->next;
while (ptemp != NULL)
{
printf("%d ", ptemp->data);
ptemp = ptemp->next;
}
printf("\n");
}
void addNode(LINK phead, int value)
{
//与创建结点的函数不同,添加结点虽然也是尾部添加,但是并没有用到尾结点。
LINK pnew = (LINK)malloc(sizeof(Node)), p;
pnew->next = NULL;
pnew->data = value;
if (phead->next == NULL)
phead->next = pnew;
else
{
p = phead;
while (p->next != NULL)
{
p = p->next;
}
p->next = pnew;
}
}
int main()
{
LINK phead = (LINK)malloc(sizeof(Node));
int data = 0;
phead = create();
display(phead);
int value;
printf("请输入一个值:");
scanf_s("%d", &value);
addNode(phead, value);
display(phead);
return 0;
}
#include<stdlib.h>
//单链表有头结点的链表
typedef int ElemType;
typedef struct node
{
ElemType data;
struct node *next;
}Node, *LINK;
LINK create()//创建一个链表
{
//所以创建结点的时候需要一个尾结点,便于实现尾部插入
LINK phead = (LINK)malloc(sizeof(Node));
LINK pend, pnew;
ElemType data;
phead->next = NULL;
pend = phead;
printf("请输入数据:\n");
scanf_s("%d", &data);
while (data != 0)
{
pnew = (LINK)malloc(sizeof(Node));
pnew->data = data;
pnew->next = NULL;
pend->next = pnew;
pend = pnew;
scanf_s("%d", &data);
}
return phead;
}
void display(LINK phead)//遍历链表
{
LINK ptemp = (LINK)malloc(sizeof(Node));
ptemp = phead->next;
while (ptemp != NULL)
{
printf("%d ", ptemp->data);
ptemp = ptemp->next;
}
printf("\n");
}
void addNode(LINK phead, int value)
{
//与创建结点的函数不同,添加结点虽然也是尾部添加,但是并没有用到尾结点。
LINK pnew = (LINK)malloc(sizeof(Node)), p;
pnew->next = NULL;
pnew->data = value;
if (phead->next == NULL)
phead->next = pnew;
else
{
p = phead;
while (p->next != NULL)
{
p = p->next;
}
p->next = pnew;
}
}
int main()
{
LINK phead = (LINK)malloc(sizeof(Node));
int data = 0;
phead = create();
display(phead);
int value;
printf("请输入一个值:");
scanf_s("%d", &value);
addNode(phead, value);
display(phead);
return 0;
}
阅读全文
0 0
- C语言实现单链表的创建和添加结点
- C语言单链表的创建和添加结点
- 单链表插入和删除结点c语言的实现
- c语言实现正序链表的创建(不使用头结点)
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
- C语言进阶-第18讲:单链表的遍历、创建、插入和删除结点
- 不带头结点的单链表的实现(C语言)
- C语言实现单链表(带头结点)的基本操作
- C语言实现单链表节点的删除(带头结点)
- C语言实现单链表的节点插入(带头结点)
- C语言实现单链表的逆序打印(带头结点)
- 没有头结点的单链表[c语言实现]
- C语言实现带头结点的链表的创建、查找、插入、删除
- C语言实现带头结点的链表的创建、查找、插入、删除操作
- 单链表结点删除 C语言实现
- 易飞8.0-9.0.12版本注册
- 前端开发知识结构
- 安卓开发中非常炫的效果集合
- C# 网络编程之网页自动登录 (一).使用WebBrower控件模仿登录
- scikit-learn(sklearn) 0.19 中文文档的翻译计划,邀请你的加入 | ApacheCN
- C语言实现单链表的创建和添加结点
- [二分+最大流] BZOJ1532: [POI2005]Kos-Dicing
- Spring的三种注入方式:
- VS中double的数据存储
- 词向量源码解析:(6.2)fasttext源码解析之文本分类1
- opencv 2.4.9+vs2013 人脸识别环境搭建,眼睛,鼻子,嘴巴等 摄像头读取和显示
- VC++/halcon入门之数据结构
- 数组,json的去重
- 利用 WireShark 深入调试网络请求