链表(单向链表)(C实现)
来源:互联网 发布:java分布式架构设计 编辑:程序博客网 时间:2024/05/21 11:17
- 前言
最近在复习数据结构的相关知识,感觉在初学的时候还是有很多东西没有掌握,不过现在终于算是搞得比较有头绪了,所以就在写出来和大家一起分享!
- 什么是链表
简单的说,链表就是由多个结点离散分配,彼此通过指针相连,每个结点只有一个前驱结点和后继结点。首节点无前驱结点,为结点无后继结点的一种存储结构。
- 链表的结构
头结点:链表的第一个有效结点前面的结点,头结点并不存放有效数据,也就是数据域为空,加头结点的主要目的是为了方便链表的操作。
首节点:链表的第一个有效结点,结点包含数据域和指针域。
尾结点:尾结点的指针域为空。
头指针:指向头结点的指针变量,它存放了头结点的地址(在这里注意一下,指针变量存放的是地址,也就是说头指针存放的是头结点的地址,一般通过头指针对链表进行操作)。
- 具体实现
#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风格实现(单向)
- 单向链表(C语言实现)学习记录
- C++:单向链表实现
- 数据结构--单向链表(c++)
- 数据结构(C语言)-单向链表
- Linux C 数据结构---链表(单向链表)
- Linux C 数据结构---链表(单向链表)
- C语言单向链表的实现
- C语言实现的单向链表
- 单向链表C语言实现
- 单向链表的C语言实现
- c实现逆转单向循环链表
- 自己实现C语言单向链表
- C++:操作单向链表的实现
- C语言单向链表的实现
- VS2010调试的时候一闪而过解决方案
- Linux常用网路指令
- sencha dabao js
- RubyOnRails终极部署
- Mysql KEY 解释
- 链表(单向链表)(C实现)
- Jersey创建standalone server 二
- 每日图表:如果每个人都像美国人那样生活,那么我们需要多少个地球来维持?
- 使用CVSACL进行CVS权限访问控制(for Linux)
- 传微软将放弃MSN 全面转向Skype
- 心得3--表单提交时防止用户不小心提交多次及有人恶意提交案例分析
- programming php,2nd Edition
- 突发灵感,看到某网站的搞笑图片挺多,做了一个小java,扫描抠了一些
- 漫步云中网络 ( by quqi99 )