C语言构建一个简单链表
来源:互联网 发布:汽车导航软件 编辑:程序博客网 时间:2024/05/16 17:08
最近重新写链表代码时,发现又是不会写。今天重新整理下简单链表的思路。
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
typedef struct list
{
int node;
struct list *next;
}num;
{
int node;
struct list *next;
}num;
int main()
{
int i,number = 0;
num *h,*c,*p;
h = NULL;
p = NULL;
printf("input your num:");
scanf("%d",&number);
for(i = 0;i<number;i++)
{
c = (num*)malloc(sizeof(num));
if (h == NULL)
h = c;
else
p->next = c;
c->next = NULL;
printf("input the %d number:",i+1);
scanf("%d",&c->node);
//printf("the number is %d",c->node);
p = c;
}
if(h == NULL)
{
printf("there is no number!\n");
//exit(0);
}
i = 0;
c = h;
printf("the number is:\n");
while(c!=NULL)
{
i++;
printf("%d,%d\n",c->node,i);
c = c->next;
}
getchar();
return 0;
}
以上是相关代码。整体而言,先构造结构体,其中,node里可以有很多参数,比如数量,人称等等。然后就是链表构建。p的next也赋值成c,为什么呢?这位p要到了空间,
首先要确定三个链表指针,h,c,p.c分别是头,现在,尾部的节。
然后就是初始化头部。h为null,开始往链表里填数据。
通过循环的方式,最先要到动态空间,先判断是否在头部,如果不在,就将当期c的next指针初始化,然后将将p->next 赋值成c,这里我是猜测,如果不赋值,后面c将没有空间,说白了,p没有空间。如果注释掉这行,测试结果为只能存取第一节。
然后就是c的node赋值,这里c的node和next都定义完成,再将这个结构传递给p。
在读取list的时候,就不需要p了,因为c自带的指针next就可以完成上述工作。只需要检查是否为头部罢了。
阅读全文
0 0
- C语言构建一个简单链表
- C语言实现一个简单的单向链表list
- C语言实现的一个简单链表
- C语言-------实现一个简单的单向链表
- 如何构建一个简单链表
- 一步一步教你从零开始写C语言链表--->构建一个链表
- C语言一个简单问题
- C语言构建线性表
- 转载的标准文档:C语言实现一个简单的单向链表list
- 【C语言】C语言实现简单的链表
- C语言概述-C语言的一个简单实例
- 一个简单的HashMap C语言实现
- 一个简单的C语言嵌套问题
- 一个简单的C语言问题
- 用C语言设计一个简单计算器
- 一个简单的c语言题目
- 一个简单的计算器(C语言)
- 一个简单数学小游戏C语言代码
- 猜数字游戏
- Git 王者超神之路
- 获取某个目录下所有的文件
- Autofac官方文档(二十一)【应用集成之OWIN】
- [kuangbin带你飞]专题1 简单搜索 E
- C语言构建一个简单链表
- LeetCode 35. Search Insert Position
- SpringBoot
- Autofac官方文档(二十二)【应用集成之MVC】
- 个人总结65
- Excel常用技巧
- 计算机网络体系结构(TCP/IP)
- C语言解决现实生活的问题2——判断凶手
- Excel在统计分析中的应用—第十章—方差分析-单因素方差分析-1