数据结构之链表(C实现)
来源:互联网 发布:地球仪软件 编辑:程序博客网 时间:2024/04/26 04:02
- 前言
最近在复习数据结构的相关知识,感觉在初学的时候还是有很多东西没有掌握,不过现在终于算是搞得比较有头绪了,所以就在写出来和大家一起分享!
- 什么是链表
简单的说,链表就是由多个结点离散分配,彼此通过指针相连,每个结点只有一个前驱结点和后继结点。首节点无前驱结点,为结点无后继结点的一种存储结构。
- 链表的结构
头结点:链表的第一个有效结点前面的结点,头结点并不存放有效数据,也就是数据域为空,加头结点的主要目的是为了方便链表的操作。
首节点:链表的第一个有效结点,结点包含数据域和指针域。
尾结点:尾结点的指针域为空。
头指针:指向头结点的指针变量,它存放了头结点的地址(在这里注意一下,指针变量存放的是地址,也就是说头指针存放的是头结点的地址,一般通过头指针对链表进行操作)。
- 具体实现
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
//定义链表节点
typedef struct Node
{
}NODE, *PNODE;
//函数声明
PNODEcreateLinkList(void);
void traverseLinkList(PNODEpHead);
bool isEmpty(PNODEpHead);
int getLength(PNODEpHead);
bool insertElement(PNODE pHead, int pos, intval);
bool deleteElement(PNODE pHead, int pos, int *pVal);
void sort(PNODEpHead);
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语言实现)
- 数据结构之单向链表的实现【C++】
- 数据结构C语言实现之链栈
- 数据结构C语言实现之链队列
- 数据结构C语言实现之顺序表
- 简单数据结构之顺序表(C实现)
- 简单数据结构之链式表(C实现)
- C - 数据结构之链表
- 数据结构之队列(C实现)
- 数据结构之栈(C实现)
- 数据结构之链表(C/C++)
- 数据结构之链表实现
- C语言实现数据结构的链表
- 数据结构---队列链表c实现
- [数据结构]C语言链表实现
- php php_openssl.dll作用
- 深度学习笔记——RNN(LSTM、GRU、双向RNN)学习总结
- Kotlin基础教程-数据对象
- 海南海辰科技公司的氛围太好,不想离开怎么破
- Centos 6.9 Redis 配置安全密码
- 数据结构之链表(C实现)
- 使用jRebel在IntelliJ IDEA 中进行 Java 热部署
- $(function() {····});什么意思?页面加载完毕就自动执行
- jQuery<4.1>
- mininet环境搭建
- Spring Cloud Netflix 教程(Feign+Ribbon+Hystrix)
- Unity打包到android中屏蔽权限弹窗
- android开发之用户头像上传
- Nginx错误:(13: Permission denied) while reading upstream