当前位置: 首页 > 编程日记 > 正文

C语言单向链表的实现

一个简单结点的结构体表示为:

struct note

{

int  data;              /*数据成员可以是多个不同类型的数据*/

struct  note  *next;      /*指针变量成员只能是-个*/

};

一个简单的单向链表的图示

1.链表是结构、指针相结合的-种应用,它是由头、中间、尾多个链环组成的单方向可伸缩的链表,链表上的链环我们称之为结点。

2.每个结点的数据可用-个结构体表示,该结构体由两部分成员组成:数据成员与结构指针变量成员。

3.数据成员存放用户所需数据,而结构指针变量成员则用来连接(指向)下-个结点,由于每-个结构指针变量成员都指向相同的结构体,所以该指针变量称为结构指针变量。

4.链表的长度是动态的,当需要建立-个结点,就向系统申请动态分配-个存储空间,如此不断地有新结点产生,直到结构指针变量指向为空(NULL)。申请动态分配-个存储空间的表示形式为:

  (struct  note*)malloc(sizeof(struct  note))

链表的建立

在链表建立过程中,首先要建立第一个结点,然后不断地

在其尾部增加新结点,直到不需再有新结点,即尾指针指向

NULL为止。

设有结构指针变量   struct note *p,*p1,*head;

head:用来标志链表头

p:在链表建立过程中,p总是不断先接受系统动态分配的新结点地址

p1->next:存储新结点的地址。

链表建立的步骤:

第一步:建立第一个结点

struct   node

{

int   data;

struct   node  *next;

};

struct   note   *p,*p1,*head;

head=p1=p=(struct  node  *)malloc(sizeof(struct node);

第二步:

给第-个结点成员data赋值并产生第二个结点

scanf(“%d”,&p->data);  /*输入10*/

p=(struct  node  *)malloc(sizeof(struct node);

第三步:将第-个结点与第二个结点连接起来

p1-> next=p;

第四步:产生第三个结点

p1=p;

scanf(“%d”,&p->data);/*输入8*/

p=(struct  node  *)malloc(sizeof(struct node);

以后步骤都是重复第三、四步,直到给出-个结束条件,不再建新的结点时,要有

p->next=NULL;它表示尾结点。

代码

#include <stdio.h>
#include<stdlib.h>
#define  LEN  sizeof(struct node)
struct node
{
int data;
struct node  *next;
};
main()
{     struct  node  *p, *pl,* head;
head=p=(struct node * )malloc(LEN);
scanf("%d",&p->data);/*头结点的数据成员*/
while(p->data!=0)   /*给出0结束条件,退出循环*/
{    pl=p;
p=(struct node * )malloc(LEN);
scanf("%d",&p->data);/*中间结点数据成员*/
pl->next=p;/*中间结点的指针成员值*/
}
p-> next=NULL;/*尾结点的指针成员值*/
p=head;/*链表显示*/
printf("链表数据成员是:");
while(p->next!=NULL)
{
printf("%d",p->data);
p=p->next;
}
printf("%d\n",p->data);
}

相关文章:

Java开发常用Linux命令

1.查找文件 find / -name filename.txt根据名称查找/目录下的filename.txt文件。 find . -name "*.xml"递归查找所有的xml文件 find . -name "*.xml" |xargs grep "hello world"递归查找所有文件内容中包含hello world的xml文件 grep -H spring …

数据库开发基本操作-安装Sql Server 2005出现“性能监视器计数器要求”错误解决方法...

今天在安装SQL Server 2005时&#xff0c;出现“性能监视器计数器要求”错误&#xff0c;因为以前出现过这种错误&#xff0c;得到了解决。今天又又出现这种错误&#xff0c;但并不是很清楚当时的解决办法&#xff0c;所以这次把解决方法记录下来&#xff0c;供自己以后参考&am…

华为昇腾师资培训沙龙·南京场 |华为昇腾 ACL 语言开发实践全程干货来了!看完就实操系列...

自今年疫情以来&#xff0c;AI 技术加速进入了人们的视线&#xff0c;在抗疫过程中发挥了重要作用&#xff0c;产业发展明显提速&#xff0c;我国逐步走出了一条由需求导向引领商业模式创新、市场应用倒逼基础理论和关键技术创新的发展道路&#xff0c;AI 人才的争夺战也正式打…

设计模式之C#实现---Builder

作者&#xff1a;cuike519的专栏 http://blog.csdn.net/cuike519/我们将要介绍一个和它比较像的创建型模式 Builder &#xff08;至于关于 Builder 的详细内容您可以参考 GOF 的书&#xff0c;在这里不重复了。&#xff09;。在 GOF 的书里 Builder 的目的是这样的&#xff1…

微信小程序开发之不能使用eval函数的问题

2019独角兽企业重金招聘Python工程师标准>>> 一 eval函数问题 JavaScript中的eval函数是颇受开发者争议的问题之一&#xff0c;问题主要在于其可能导致的不安全性。有关此方面问题&#xff0c;在此不再赘述&#xff0c;读者可能很容易地浏览到许多介绍性文章。 但是…

设计模式之C#实现--FactoryMethod

作者&#xff1a;cuike519的专栏 http://blog.csdn.net/cuike519/工厂方法的目的很明确就是定义一个用来创建对象的接口&#xff0c;但是他不直接创建对象&#xff0c;而由他的子类来创建&#xff0c;这样一来就将创建对象的责任推迟到了该接口的子类中&#xff0c;创建什么类…

美国AI博士指出,自学Python到底能做什么

我见过市面上很多的 Python 讲解教程和书籍&#xff0c;他们大都这样讲 Python 的&#xff1a;先从 Python 的发展历史开始&#xff0c;介绍 Python 的基本语法规则&#xff0c;Python 的 list, dict, tuple 等数据结构&#xff0c;然后再介绍字符串处理和正则表达式&#xff0…

关于微博溯源的后续问题

1、在进行关键词搜索的时候&#xff0c;如何分词&#xff0c;我们不可能用语料库进行匹配&#xff0c;已没有语料可以学习。 2、关于转折点的寻找。目前我们使用高级搜索&#xff0c;从当前时间往前推&#xff0c;根据搜索到微博的条数变化&#xff0c;确定时间发生具体时间&am…

python3的数据类型以及模块的含义

python3的数据类型以及模块的含义购物车转载于:https://blog.51cto.com/11834445/1884901

设计模式之C#实现---- ProtoType

作者&#xff1a; cuike519的专栏 http://blog.csdn.net/cuike519/该模式的意图是&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型创建新的对象。那么首先我们应该已经有了一个对象&#xff0c;同时这个对象还支持自我复制&#xff08;科隆&…

快速排序(二)最后修改

1 //2012-07-162 void quickSort(element list[], int left, int right)//快速排序3 {4 int ileft;5 int jright;6 7 if(i > j) //判断需要i<j8 return;9 10 element templist[i]; 11 12 while(i<j) 13 { 14 while(i<j …

性能超越GPU、FPGA,华人学者提出软件算法架构加速AI实时化

作者 | 王言治&#xff0c;美国东北大学电子与计算机工程系助理教授出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;近年来&#xff0c;机器学习(Machine Learning)领域的研究和发展可谓是与日俱新&#xff0c;各式各样与机器学习相关的研究成果与应用层出不穷&#…

PHP获取毫秒时间戳,利用microtime()函数

PHP获取毫秒时间戳&#xff0c;利用microtime()函数 php本身没有提供返回毫秒数的函数&#xff0c;但提供了一个microtime()函数&#xff0c;借助此函数&#xff0c;可以很容易定义一个返回毫秒数的函数。php的毫秒是没有默认函数的&#xff0c;但提供了一个microtime()函数&am…

.NET中添加控件数组

作者&#xff1a;cuike519的专栏 http://blog.csdn.net/cuike519/添加控件数组 在.NET里面我好像没有找到有关于控件数组的说明,但是前两天偶在网上看到了一篇关于如何在.NET里面实现控件数组的文章(该文章请参看MSDN).记得大学的时候在使用VB的时候使用过控件数组,可是到了…

如何在机器学习的框架里实现隐私保护?

编者按&#xff1a;数据时代&#xff0c;人们从技术中获取便利的同时&#xff0c;也面临着隐私泄露的风险。微软倡导负责任的人工智能&#xff0c;因此机器学习中的隐私保护问题至关重要。本文介绍了目前机器学习中隐私保护领域的最新研究进展&#xff0c;讨论了机密计算、模型…

函数图像轻松画:教你用永中图象

函数图像轻松画&#xff1a;教你用永中图象 函数图像轻松画&#xff1a;教你用永中图象转载于:https://blog.51cto.com/premium/933220

c语言语系的命名风格和java系命名风格

c语言系的命名风格&#xff1a;单词之间使用下划线分隔。如上图。 java语言是另外一个系&#xff0c;javascript属于java语系(当年就是想借助java的名气所以命名javascript)。java语系是驼峰式命名法&#xff0c;如getElementById()。如果使用c语系命名风格则使用下划线分隔 ge…

全国IP地址分配表

xa.sn.cn,西安公众网,西安,陕西,CN,202.100.0.* xa.sn.cn,西安公众网,西安,陕西,CN,202.100.1.* xa.sn.cn,西安公众网,西安,陕西,CN,202.100.2.* xa.sn.cn,西安公众网,西安,陕西,CN,202.100.3.* xa.sn.cn,西安公众网,西安,陕西,CN,202.100.4.* xa.sn.cn,西安公众网,西安,陕西,C…

神同步!美国三地 Tesla 车主,自动驾驶都撞了警车

来源 | HyperAI超神经&#xff08;ID&#xff1a;HyperAI&#xff09;内容概要&#xff1a;上周在美国北卡州发生了一起交通事故&#xff0c;一辆自动驾驶模式下的 Tesla 撞击了停靠在路边的警车&#xff0c;虽未造成人员伤亡&#xff0c;但车辆损毁严重。事故调查中发现&#…

Q币才是腾讯真正的世界级产品

本文受《虚拟货币将是下一个大平台》启发而来。何玺认为&#xff0c;腾讯Q币本身就具有全球化虚拟货币的基因。 日前&#xff0c;有媒体报道了Pocket Change获得了由Google Ventures领投的500万美元A轮融资&#xff0c;使其融资总额达到640万美元。 Pocket Change是一个为Andro…

解决Office互操作错误检索COML类工厂中 CLSID为 {xxx}的组件时失败,原因是出现以下错误: 80070005...

Excel为例&#xff08;其他如Word也适用&#xff09;文件数据导入时报出以下错误: 检索COML类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败&#xff0c;原因是出现以下错误: 80070005&#xff0c;如图所示: 可以看到报出的异常类型为:UnauthorizedAcces…

再论制硬盘逻辑锁

姜卓睿 雷必武 一、序言 由于教学工作需要&#xff0c;本人在参看了贵刊98年第4期《硬盘逻辑锁技术研究及应用》与99年第3期《解开硬盘逻辑死锁的一种有效方法》的文章之后&#xff0c;决定以同类方法尝试一下&#xff0c;结果未获得成功&#xff0c;又“苦于”没有KV300 L …

​我国科学家成功研制全球神经元规模最大的类脑计算机

来源 | 之江实验室&#xff08;ID&#xff1a;zhejianglab&#xff09;9月1日&#xff0c;浙江大学与之江实验室举办成果发布会&#xff0c;共同发布我国首台基于自主知识产权类脑芯片的类脑计算机&#xff08;Darwin Mouse&#xff09;。浙江大学校长吴朝晖院士出席并讲话。他…

批处理获取目录下所有文件名

由于要处理一些文件&#xff0c;找了个这样的批处理&#xff1a; 输出目录及子目录下所有的jpg图片的文件名&#xff0c;不含扩展名 1 echo off 2 cd.>List.txt 3 for /f "delims" %%i in (dir /s/a-d /b *.jpg) do >>List.txt echo %%~ni>>JustName.…

1001: 整数求和

描述:求两个整数之和输入:输入数据只包括两个整数A和B。输出:两个整数的和。样例输入:1 2样例输出:3考点:运算符代码&#xff1a; #include <stdio.h> int main() {int a,b;int c;scanf("%d",&a);scanf("%d",&b);cab;printf("%d",…

ASP.NET 2.0 中的新增安全功能

发布日期&#xff1a; 8/26/2004| 更新日期&#xff1a; 8/26/2004Stephen Walther Microsoft Corporation 适用于&#xff1a; Microsoft ASP.NET 2.0 Microsoft ASP.NET framework Microsoft SQL Server Microsoft Visual Studio .NET 摘要&#xff1a;ASP.NET 2.0 包含一些新…

GitHub 标星 20000+,国产 AI 开源从算法开始突破 | 专访商汤联合创始人林达华

作者 | 阿司匹林责编 | 李雪敬封图 | CSDN 下载自视觉中国作为已经有4000多名员工的AI独角兽&#xff0c;商汤的一举一动备受关注。从2018年开始&#xff0c;奔着“开源、统一、可复现”的目标&#xff0c;商汤开始建设人工智能算法的开源体系。当时&#xff0c;商汤联合创始人…

那些年,我们一起学过的汇编----之伪指令

弄懂了前面几篇关于基础的文章&#xff0c;下面就开始我们真正的汇编之旅了&#xff0c;在这一篇中我们着重来强调下汇编语言的伪指令。伪指令是汇编语言程序设计中的一个主要的部分&#xff0c;属于控制命令&#xff0c;在汇编语言中的数据定义、存储单元分配、指示程序结果等…

JavaScript-数据引用类型对象

1 <!DOCTYPE html>2 <html>3 <head lang"en">4 <meta charset"UTF-8">5 <title></title>6 </head>7 <body>8 <script>9 //按值传递:两个变量间赋值时,或将变量作为参数传入函数时,其实…

热点 | Excel不“香”了,数据分析首选Pyhton!

Excel一直在求职中有着不可动摇的地位无论是投行、咨询、四大曾经都会在JD中明确要求会Excel&#xff0c;而Excel称霸的时代已经过去&#xff01;事实上&#xff0c;为了追求更高的效率和质量&#xff0c;他们开始使用比Excel更高效的Python&#xff0c;随后交易收入增长了15%。…