单链表完整C语言纯代码单链表完整C语言纯代码

带头结点的单链表

PAGE \* MERGEFORMAT 4

单链表

带头结点

#include

#include

/*

带头结点的单链表的操作

在该链表中,数据元素是int,

我们让头结点的数据域存储链表的实际长度

*/

/*链表节点的类型定义*/

struct node

{

int data;

struct node *next;

};

/*

链表的初始化函数

在该函数中要分配头结点存储空间

让头指针指向头结点,

因此要修改头指针的值,

所以传递头指针的地址进来

*/

void init(struct node **h)

{

struct node *s;

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

if(s==NULL) return;

/*

头结点的数据域存储链表的长度

*/

s->data=0;

s->next=NULL;

/*让头指针指向头结点*/

*h = s;

}

/*

创建链表,仍然按照逆序创建,

从后往前输入元素的值,

然后把新结点插入到表头

*/

void createLink(struct node *h)

{

struct node *s;

int n;

while(1)

{

scanf("%d",&n);

/*根据实际情况判断链表的元素

输入结束

还有一种情况就是找不到合适的

作为结束标记的值

先让用户输入元素个数,

然后固定字数循环*/

if(n==-1) break;

/*

创建新结点

*/

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

s->data = n;

s->next = h->next;

/*

新结点放入链表的表头

让头结点的NEXT指向新结点

*/

h->next = s;

(h->data)++;

}

}

/*

遍历整个链表

*/

void bianliLink(struct node *h)

{

int k;

struct node *p;

/*

P指向第一个结点

*/

p=h->next;

/*

如果定义了链表长度变量,

可以使用变量计数,

表示处理到链表的最后一个元素

如果不定义链表长度变量,

就用指针是否指向NULL,

判断是否处理到最后一个元素了

*/

/*1.链表长度变量计数*/

k=0;

while(kdata)

{

/*对元素进行处理

这里可以根据需求变更*/

printf("%d ",p->data);

/*准备处理下一个节点*/

p = p->next;

k++;

}

/*2.

用指针判断是否处理到链表的

最后一个元素了

*/

printf("\n");

p=h->next;

while(p!=NULL)

{

/*处理当前节点*/

printf("%d ",p->data);

/*准备处理下一个节点*/

p = p->next;

}

printf("\n");

}

/*

int num:要插入的结点元素的值

index: 插入位置:

index从1开始编号,

要在Index指定的位置插入数据

*/

void insertLink(struct node *h,int num,int index)

{

struct node *p,*s;

int k=1;

/*插入位置无效,链表长度现在是10,在12(包含12)之后的位置插入元素,认为地址无效*/

if(index<=0||index>(h->data+1)) return;

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

if(s==NULL) return;

s->data=num;

/*

让指针p指向头结点

*/

p = h;

/*

让指针p移动到待插入位置的前驱结点

*/

while(k

{

p=p->next;

k++;

}

s->next=p->next;

p->next=s;

h->data++;

}

/*

index: 删除位置:

index从1开始编号,

要删除index所指的位置的元素

*/

void deleteLink

一个完整的c语言的单链表代码,单链表完整C语言纯代码.docx相关推荐

  1. 单表带换密码C语言程序,帮忙写个C语言程序!题目在下面!关于链表的。还没学,题目:“建立一个链表,逐个输入字符,每一个字符存放在一个链。...

    帮忙写个C语言程序!题目在下面!关于链表的.还没学,题目:"建立一个链表,逐个输入字符,每一个字符存放在一个链. Posted By : Admin 2016-05-16 21:16 网友问 ...

  2. 数据结构5: 链表(单链表)的基本操作及C语言实现

    逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储. 由于分散存储,为了能够体现出数据元素之间的逻辑关 ...

  3. 逆置单链表c语言程序,(数据结构C语言版)顺序表和单链表的逆置

    <(数据结构C语言版)顺序表和单链表的逆置>由会员分享,可在线阅读,更多相关<(数据结构C语言版)顺序表和单链表的逆置(7页珍藏版)>请在人人文库网上搜索. 1.实验1-1顺序 ...

  4. php链表和联表的区别,PHP_浅谈PHP链表数据结构(单链表),链表:是一个有序的列表,但 - phpStudy...

    浅谈PHP链表数据结构(单链表) 链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表 单向链表,双向链表,环形链表 PHP的底层是C,当一个 ...

  5. c语言将一个已知头结点的单链表逆序_C语言实现常用数据结构:静态链表数组实现(第5篇)...

    「今天是学习C语言第 148 天」 纸上学来终觉浅,绝知此事要躬行.-- 陆游「冬夜读书示子聿」 # 静态链表 使用数组实现,利用数组下标代替指针,从而实现数据结点之间的先后关系.实现要点: 1.数组 ...

  6. c语言数组指定位置插入和删除_玩转C语言链表,单链表/双向链表的建立/遍历/插入/删除...

    最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合, ...

  7. 线性表:3.链表,单链表详解与C语言实现

    逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为 线性表的链式存储 . 由于分散存储,为了能够体现出数据元素之间的逻 ...

  8. C语言丨线性表(二):线性链表(单链表)

    线性表是由数据类型相同的个数据元素组成的有限序列,通常记为: 其中n为表长,n=0时称为空表:下标i表示数据元素的位序. 线性表的特点是组成它的数据元素之间是一种线性关系,即数据元素"一个接 ...

  9. C++ 单链表基本操作分析与实现 链表   链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结

    C++ 单链表基本操作分析与实现 链表 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以 ...

最新文章

  1. 关于寒假和春季开学!教育部通知来了!近400所高校寒假时间已公布!
  2. C# 入门经典 第三版 下载。
  3. XCode4.3.3 + iOS5.1 无证书开发并生成app、ipa文件
  4. 黑马程序员--线程【下】
  5. CTF Geek Challenge——第十一届极客大挑战Re Write Up
  6. 一天学完spark的Scala基础语法教程教程三、循环结构(idea版本)
  7. Nginx + php
  8. 用BenchmarkDotNet看Property
  9. 原 剑指offer(刷题11-20)--c++,Python版本
  10. sz 命令错误输入成xz,粗心导致的小事故
  11. onenote设置默认新建页面颜色非白色
  12. 软件测试基础——理论知识
  13. bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: 的解决方法
  14. Http文件断点下载(Http请求头的Range字段)
  15. ubuntu 14安装droidcam调用手机摄像头
  16. 计算机电子表格编辑栏,怎么在Excel中添加开发工具到工具栏
  17. 前端基础知识--Document的常用属性和常用函数
  18. 算法设计与分析第五章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
  19. 英语语法之句子成分(造句)
  20. 查看本机mac地址/ ipconfig /all 的一点笔记

热门文章

  1. Python高级知识点学习(九)
  2. 4. Spring Boot 过滤器、监听器
  3. cf244D. Match amp; Catch 字符串hash (模板)或 后缀数组。。。
  4. Linux常用的基本命令14
  5. Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙
  6. Android service 和 client的进程通信和消息回调--AIDL
  7. MySQL架构设计相关的方式方法和软件介绍
  8. Etherchannel 备忘
  9. 手动安装Linux网卡驱动程序
  10. 电脑显示器闪屏_时尚超薄可升降:华硕新品家用护眼显示器MZ27AQL