
堆栈
文章平均质量分 52
「已注销」
这个作者很懒,什么都没留下…
展开
-
Ubuntu Linux C 编程-----深度优先搜索
现在我们用堆栈解决一个有意思的问题,定义一个二维数组:int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的路线。程序如下:#include <stdio.h>#define MAX_ROW 5#define MAX_COL 5原创 2021-02-16 12:09:24 · 131 阅读 · 0 评论 -
Ubuntu Linux C 编程----用递归实现倒序打印
在main函数中,入栈的顺序是’a’、‘b’、‘c’,而出栈打印的顺序却是’c’、‘b’、‘a’,最后入栈的’c’最早出来,因此堆栈这种数据结构的特点可以概括为LIFO(Last In First Out,后进先出)。我们也可以写一个递归函数来倒序打印,这是利用函数调用的栈帧实现后进先出的:也许你会说,又是堆栈又是递归的,倒序打印一个数组犯得着这么大动干戈吗?写一个简单的循环不就行了:#include <stdio.h>#define LEN 3char buf[LEN]={‘a’,原创 2021-02-16 11:55:14 · 269 阅读 · 0 评论 -
Ubuntu Linux C 编程----堆栈
堆栈在“递归”一节中我们已经对栈这种数据结构有了初步认识。堆栈是一组元素的集合,类似于数组,不同之处在于,数组可以按下标随机访问,这次访问a[5]下次可以访问a[1],但是堆栈的访问规则被限制为Push和Pop两种操作,Push(入栈或压栈)向栈顶添加元素,Pop(出栈或弹出)则取出当前栈顶的元素,也就是说,只能访问栈顶元素而不能访问栈中其它元素。如果所有元素的类型相同,堆栈的存储也可以用数组来实现,访问操作可以通过函数接口提供。看以下的示例程序。#include <stdio.h>ch原创 2021-02-16 11:49:50 · 168 阅读 · 0 评论