
数据结构学习
文章平均质量分 76
jemmie_w
白天洞洞荡,晚上熬月亮
展开
-
双向链表DuLinkList定义与操作
/*1、双向链表的优点:大部分与单链表差不多,主要的区别在于,向后寻查结点的复杂度为O(1)2、双向链表的缺点:同单链表类似,同时比单链表占据更大的内存*/#include#define OK 1#define ERROR 0typedef int Status;//表示返回的状态值 typedef int ElemType;原创 2017-03-28 11:01:24 · 2852 阅读 · 0 评论 -
堆栈Stack定义与操作
/*1、堆栈分为“顺序栈”(通过数组实现)和“链栈”(通过链表实现) 顺序栈主要通过数组来实现,用指向栈顶和栈底的两个指针来表示2、堆栈是LIFO(LAST IN FIRST OUT)机制, 1 有将一个序列翻转出来的能力, 2 还有括号,符号匹配功能 3 可以实现递归(函数嵌套,保护上一层的参数进入下一层)3、free只能释放最开始malloc的指针地址的内存,且必原创 2017-03-28 11:04:42 · 1956 阅读 · 0 评论 -
单链表LinkList定义与操作
/*1、单链表的优点:方便插删,但插入,删除速度为O(n) (因为前提是需要进行查找后再插删,查找的复杂度为O(n))2、单链表的缺点:查找,存取(查找基础上)的速度为O(n)(绝大部分操作都基于查找之上)3、单链表有”动态链表“(指针)和“静态链表”(数组)两种实现方式,单链表更注重一个结点的位置(指针或者索引值),而不注重列表的位序4、“循环链表”与“单链表”的区别为最后一个结原创 2017-03-28 10:58:01 · 5637 阅读 · 0 评论 -
线性表list定义与操作
/*线性表的优点:查找,存取(对一个元素的改变,实际上也是查找)的速度为O(1)线性表的缺点:插入,删除都需要移动,速度为O(n)*/#include#define SIZE 100//预定义列表大小#define INCREMENT 10//列表需要增加容量时的增加量#define OK 1#define ERROR 0typedef int原创 2017-03-28 10:52:00 · 690 阅读 · 0 评论 -
队列Queue定义与操作
#include#define MaxSize 100#define OK 1#define ERROR 0typedef int Status;//表示返回的状态值 typedef int ElemType;/*1、队列可分为“循环队列”和“栈队列” 循环队列 :通过将顺序的内存地址看做首位相连的地址,来实现队列的增删,缺点是队列有最大的固定大小 栈队列 :则原创 2017-03-28 14:21:41 · 977 阅读 · 0 评论 -
串string定义与操作
#include#define MAXLENGTH 255//最大的字符串的长度#define OK 1#define ERROR 0typedef int Status;//表示返回的状态值 typedef int ElemType;/*1、字符串有三种不同的表示方式 1. 定长顺序存储结构(数组Array固定形式),缺点为定长会有长度限制,以及插删的计算量比较大(插原创 2017-03-28 14:24:42 · 387 阅读 · 0 评论 -
数组Array定义与操作
/*1、几乎绝大部分语言中都将数组设置为默认类型,本章用抽象数据类型的形式描述和实现数组,以及高维数组2、stdarg提供va_start(),va_arg(),va_end()三个函数来获得外部函数的不定长参数的值3、4、5、*/#include//std(standard) IO#include//std(standard) arguments#define OK 1原创 2017-03-28 14:27:46 · 1441 阅读 · 0 评论 -
稀疏矩阵SMatrix定义与操作
/*1、一般矩阵用二维数组存储即可,这里主要讨论的是对矩阵进行压缩存储,对于一般无规律矩阵无法进行很有效的压缩 这里主要有两种矩阵: 1、特殊矩阵(有某种规律的矩阵),如对称矩阵或三角矩阵,可以存储一半即可 2、稀疏矩阵(一般指0的个数占所有个数的比重<=0.05的矩阵),通过三元法来存储矩阵可以有效地进行压缩2、其中稀疏矩阵的实现方式有三原创 2017-03-28 14:29:07 · 1281 阅读 · 0 评论