一个完整的c语言的单链表代码,单链表完整C语言纯代码.docx
单链表完整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相关推荐
- 单表带换密码C语言程序,帮忙写个C语言程序!题目在下面!关于链表的。还没学,题目:“建立一个链表,逐个输入字符,每一个字符存放在一个链。...
帮忙写个C语言程序!题目在下面!关于链表的.还没学,题目:"建立一个链表,逐个输入字符,每一个字符存放在一个链. Posted By : Admin 2016-05-16 21:16 网友问 ...
- 数据结构5: 链表(单链表)的基本操作及C语言实现
逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为线性表的链式存储. 由于分散存储,为了能够体现出数据元素之间的逻辑关 ...
- 逆置单链表c语言程序,(数据结构C语言版)顺序表和单链表的逆置
<(数据结构C语言版)顺序表和单链表的逆置>由会员分享,可在线阅读,更多相关<(数据结构C语言版)顺序表和单链表的逆置(7页珍藏版)>请在人人文库网上搜索. 1.实验1-1顺序 ...
- php链表和联表的区别,PHP_浅谈PHP链表数据结构(单链表),链表:是一个有序的列表,但 - phpStudy...
浅谈PHP链表数据结构(单链表) 链表:是一个有序的列表,但是它在内存中是分散存储的,使用链表可以解决类似约瑟夫问题,排序问题,搜索问题,广义表 单向链表,双向链表,环形链表 PHP的底层是C,当一个 ...
- c语言将一个已知头结点的单链表逆序_C语言实现常用数据结构:静态链表数组实现(第5篇)...
「今天是学习C语言第 148 天」 纸上学来终觉浅,绝知此事要躬行.-- 陆游「冬夜读书示子聿」 # 静态链表 使用数组实现,利用数组下标代替指针,从而实现数据结点之间的先后关系.实现要点: 1.数组 ...
- c语言数组指定位置插入和删除_玩转C语言链表,单链表/双向链表的建立/遍历/插入/删除...
最近临近期末的C语言课程设计比平时练习作业一下难了不止一个档次,第一次接触到了C语言的框架开发,了解了View(界面层).Service(业务逻辑层).Persistence(持久化层)的分离和耦合, ...
- 线性表:3.链表,单链表详解与C语言实现
逻辑结构上一个挨一个的数据,在实际存储时,并没有像顺序表那样也相互紧挨着.恰恰相反,数据随机分布在内存中的各个位置,这种存储结构称为 线性表的链式存储 . 由于分散存储,为了能够体现出数据元素之间的逻 ...
- C语言丨线性表(二):线性链表(单链表)
线性表是由数据类型相同的个数据元素组成的有限序列,通常记为: 其中n为表长,n=0时称为空表:下标i表示数据元素的位序. 线性表的特点是组成它的数据元素之间是一种线性关系,即数据元素"一个接 ...
- C++ 单链表基本操作分析与实现 链表 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结
C++ 单链表基本操作分析与实现 链表 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的.链表由一系列结点(链表中每一个元素称为结点)组成,结点可以 ...
最新文章
- 关于寒假和春季开学!教育部通知来了!近400所高校寒假时间已公布!
- C# 入门经典 第三版 下载。
- XCode4.3.3 + iOS5.1 无证书开发并生成app、ipa文件
- 黑马程序员--线程【下】
- CTF Geek Challenge——第十一届极客大挑战Re Write Up
- 一天学完spark的Scala基础语法教程教程三、循环结构(idea版本)
- Nginx + php
- 用BenchmarkDotNet看Property
- 原 剑指offer(刷题11-20)--c++,Python版本
- sz 命令错误输入成xz,粗心导致的小事故
- onenote设置默认新建页面颜色非白色
- 软件测试基础——理论知识
- bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: 的解决方法
- Http文件断点下载(Http请求头的Range字段)
- ubuntu 14安装droidcam调用手机摄像头
- 计算机电子表格编辑栏,怎么在Excel中添加开发工具到工具栏
- 前端基础知识--Document的常用属性和常用函数
- 算法设计与分析第五章习题解答与学习指导(第2版)屈婉婷 刘田 张立昂 王捍贫编著 清华大学出版社
- 英语语法之句子成分(造句)
- 查看本机mac地址/ ipconfig /all 的一点笔记
热门文章
- Python高级知识点学习(九)
- 4. Spring Boot 过滤器、监听器
- cf244D. Match amp; Catch 字符串hash (模板)或 后缀数组。。。
- Linux常用的基本命令14
- Chapter 1 Securing Your Server and Network(6):为SQL Server访问配置防火墙
- Android service 和 client的进程通信和消息回调--AIDL
- MySQL架构设计相关的方式方法和软件介绍
- Etherchannel 备忘
- 手动安装Linux网卡驱动程序
- 电脑显示器闪屏_时尚超薄可升降:华硕新品家用护眼显示器MZ27AQL