数据结构一(单链表)
来源:互联网 发布:lm算法 编辑:程序博客网 时间:2024/06/14 00:15
用一组地址任意的存储单元存放线性表中的数据元素,以元素(数据元素的映象) + 指针(指示后继元素存储位置)= 结点(表示数据元素 或 数据元素的映象),以“结点的序列”表示线性表称作线性链表(单链表)。
有几个基本概念需要掌握,如下:
1.表头结点
链表中的第一个结点,包含指向第一个数据元素的指针以及链表自身的一些信息。
2.数据结点
链表中代表数据元素的结点,包含指向下一个数据元素的指针和数据元素的信息
3.尾结点
链表中的最后一个数据结点,其下一元素指针为空,表示无后继
这里主要介绍线性表的常用操作:
l 创建线性表
l 销毁线性表
l 清空线性表
l 将表中元素倒置
l 表元素插入
l 表元素删除
l 获取表中某个位置的元素
l 获取表长度
代码总分为三个文件:
LinkList.h : 放置功能函数的声明,以及表的声明,表结点的定义
LinkList.c : 放置功能函数的定义,以及表的定义
Main.c : 主函数,使用功能函数完成各种需求,不过一般用作测试
这里着重说下插入操作﹑删除操作和倒置操作:
插入操作:
如图
插入元素方法:
首先判断线性表﹑插入位置是否合法
由表头开始通过next指针移动pos次后,当前元素的next指针即指向要插入的位置
把当前元素(current)的next指针包含的地址赋给新元素(node)的next指针
把新元素(node)的地址赋给当前元素(current)的next指针
最后把线性表长度加1
删除操作:
如图
删除元素方法:
首先判断线性表﹑删除位置是否合法
获取第pos个元素
将第pos个元素的next指针保存的地址赋给第pos个元素前一个元素的next指针
最后把表长度减1
倒置操作:
如图
倒置元素方法:
把头结点指向的首元素的next指针赋为NULL
然后把首元素以后的结点依次每个插入到头结点和首元素中间
OK! 上代码:
LinkList.h
LInkList.c
main.c
- 数据结构一(单链表)
- 数据结构(一)单链表
- 数据结构之单链表(一)
- 数据结构学习一(单链表的操作)
- 单链表操作(数据结构实验一)
- 单链表的实现---数据结构学习(一)
- 数据结构与算法笔记(一)单链表
- java数据结构(一)
- 数据结构(一)
- 数据结构复习题(一)
- 数据结构基础(一)
- 数据结构(一) --- 前言
- 数据结构学习心得(一)
- 数据结构学习(一)
- 数据结构(一)
- 数据结构 - 队列(一)
- 数据结构浅析(一)
- 数据结构导论(一)
- Android学习七 BroadcastReceiver广播接收者
- 系统广播的action
- 防止快速连续点击按钮重复提交数据之一(自定义方法实现)
- windows下编译最新x264
- Python 列表
- 数据结构一(单链表)
- Ubuntu 查看系统版本、位数 指令
- python脚本设置微信自动回复[简单应用]
- 聚类与分类的区别?
- Android学习日志——第9天
- 第 9 章 存储过程与函数
- 排列组合n个元素中选取m个元素
- js中‘0’到底是 true 还是 false
- OmniGraffle