DynamicStack 动态栈C语言算法(链表栈)

动态栈 通过链表形式表示的静态栈,栈的长度可以随时拓展。相比较静态栈,其占用空间会稍大一些。 当通过链表表示动态栈时,为了减少遍历次数,可以把头结点当做栈顶元素,每次出栈与入栈都对头结点操作,可以减少遍历。 实现功能 初始化栈 入栈 出栈 清空栈 取栈的大小 打印栈的内容 代码 GitHu...

2018-11-19 17:23:39

阅读数:20

评论数:0

StaticStack 静态栈C语言算法(数组栈)

静态栈 通过数组形式表示的静态栈,代码量和复杂程度都比较低,且在读取时可以快速访问,但是栈的空间大小固定,当处理不确定数据量的运算时容易出现栈满情况。 因此静态栈的方法普遍适用于数据量确定或范围大致确定的运算,例如可以运用于汉罗塔游戏运算、算数优先级运算程序等。 实现功能 初始化栈 入栈 出栈...

2018-11-19 16:57:33

阅读数:18

评论数:0

DoubleLinkedList 双向链表C语言算法(递归)

双向链表 相比较单链表,双链表的优势在于可以通过一个元素判断其前驱元素,可以实现双向递归,在特定计算中有优势。但是相比较单向链表,随着链表长度的增加,其所占空间也会比单链表长一些。 但是相比较数组存储,拓展性和单链表一样都占有优势,而且可以双向传递,双向存储。但同样在读取时也需要遍历访问元素,而不...

2018-11-18 16:46:24

阅读数:7

评论数:0

CircularLinkedList 循环链表C语言算法

循环链表 相比较直接使用单向链表,循环列表的优势在于循环性,即可以在任意一个位置遍历到所有元素,不会出现越界问题; 相比较通过使用数组表示循环(下一个位置索引 = (当前位置索引+1 )% 数组长度,类似于循环队列的表示),其优势在于可拓展性,可按需要插入一个新元素,并且不会浪费一个空间用于判断下...

2018-11-09 22:48:02

阅读数:22

评论数:0

LinkedList 单向链表C语言算法(递归)

实现功能: 初始化单链表 添加元素 插入元素 更新元素 删除元素 清空表 查找元素数量 获取指定索引的元素内容 查找元素所在的索引位置 导出指针数组 打印顺序表所有元素 以下代码多以递归法实现,纯手工编写,欢迎指出错误和优化方法。 更多常用数据结构代码实现,在我的GitHub下载:http...

2018-11-08 22:23:56

阅读数:50

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭