基础链表实现
来源:互联网 发布:js template模板 编辑:程序博客网 时间:2024/06/10 11:49
- 前言
最近在复习数据结构的相关知识,感觉在初学的时候还是有很多东西没有掌握,不过现在终于算是搞得比较有头绪了,所以就在写出来和大家一起分享!
- 什么是链表
简单的说,链表就是由多个结点离散分配,彼此通过指针相连,每个结点只有一个前驱结点和后继结点。首节点无前驱结点,为结点无后继结点的一种存储结构。
- 链表的结构
头结点:链表的第一个有效结点前面的结点,头结点并不存放有效数据,也就是数据域为空,加头结点的主要目的是为了方便链表的操作。
首节点:链表的第一个有效结点,结点包含数据域和指针域。
尾结点:尾结点的指针域为空。
头指针:指向头结点的指针变量,它存放了头结点的地址(在这里注意一下,指针变量存放的是地址,也就是说头指针存放的是头结点的地址,一般通过头指针对链表进行操作)。
- 具体实现
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
//定义链表节点
typedef struct Node
{
}NODE, * PNODE;
//函数声明
PNODE createLinkList(void);
void traverseLinkList(PNODE pHead);
bool isEmpty(PNODE pHead);
int getLength(PNODE pHead);
bool insertElement(PNODE pHead, int pos, int val);
bool deleteElement(PNODE pHead, int pos, int * pVal);
void sort(PNODE pHead);
int main(void)
{
}
PNODE createLinkList(void)
{
}
void traverseLinkList(PNODE pHead)
{
}
bool isEmpty(PNODE pHead)
{
}
int getLength(PNODE pHead)
{
}
void sort(PNODE pHead)
{
}
bool insertElement(PNODE pHead, int pos, int val)
{
}
bool deleteElement(PNODE pHead, int pos, int * pVal)
{
}
- 结尾语
上面实现的主要是单链表,另外还有双链表、循环链表、非循环链表等其他几种常见链表。双链表的特殊性表现在每个基本结点有两个指针域;循环链表的特性主要表现在,在循环链表中,通过任何一个结点可以找到其他所有结点。
- 基础链表实现
- 基础数据结构--双向链表的实现
- 基础数据结构--队列链表实现
- 双向链表基础操作C++实现
- 二叉树【链表实现】基础练习
- C语言基础 - 实现单向链表
- 链表基础(C语言实现)
- 基础数据结构--线性表实现
- 链表的C语言实现基础介绍
- Java面向对象基础--实现单向链表
- 数据结构基础java实现—双向链表
- 链表基础操作+实例[C语言实现]
- 数据结构基础(11) --循环链表的设计与实现
- 数据结构基础(11) --循环链表的设计与实现
- 链表基础操作与常见题目Java实现
- 数据结构-链表的基础操作实现
- 数据结构基础(11) --循环链表的设计与实现
- 算法基础之链表的游标实现
- Eclipse自动生成作者、日期注释等功能设置
- 数组大折腾1
- 不同的编程语言对于进程的内存段的访问规则
- 第十三周项目一e(数组大折腾)
- Android 系统属性SystemProperty分析
- 基础链表实现
- 智能化CSS检测法,好优化拒绝冗杂代码
- 持续集成之“依赖管理”
- sublime Text 解决中文输入问题
- 十三周项目一
- Android获取屏幕分辨率及DisplayMetrics简介
- linux—重启tomcat服务器
- GSM语音编码
- java 判断字符串中全部为数字