电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

数据结构栈求解迷宫问题C语言版

数据结构栈求解迷宫问题C语言版_第1页
1/16
数据结构栈求解迷宫问题C语言版_第2页
2/16
数据结构栈求解迷宫问题C语言版_第3页
3/16
数据结构栈求解迷宫问题(C 语言版) /*数据结构 C 语言版 栈求解迷宫问题P50-52 利用栈求解迷宫问题编译环境:Dev-C++ 4.9.9.2日期:2025 年 2 月 12 日 *//***************头文件**********************/// 迷宫坐标位置类型typedef struct {int x;// 行值 int y;// 列值 }PosType;#define MAXLENGTH 25 // 设迷宫的最大行列为 25 typedef int MazeType[MAXLENGTH][MAXLENGTH]; // 迷宫数组[行][列] typedef struct // 栈的元素类型 {int ord; // 通道块在路径上的"序号" PosType seat; // 通道块在迷宫中的"坐标位置" int di; // 从此通道块走向下一通道块的"方向"(0~3 表示东~北) }SElemType;// 全局变量 MazeType m; // 迷宫数组int curstep=1; // 当前足迹,初值为 1 #define STACK_INIT_SIZE 10 // 存储空间初始分配量 #define STACKINCREMENT 2 // 存储空间分配增量 // 栈的顺序存储表示 P46 typedef struct SqStack{SElemType *base; // 在栈构造之前和销毁之后,base 的值为 NULL SElemType *top;// 栈顶指针 int stacksize;// 当前已分配的存储空间,以元素为单位 }SqStack;// 顺序栈/****************实现************************/ //构造一个空栈 Sint InitStack(SqStack *S){// 为栈底分配一个指定大小的存储空间(*S).base = (SElemType *)malloc(STACK_INIT_SIZE*sizeof(SElemType));if( !(*S).base )exit(0);(*S).top = (*S).base;// 栈底与栈顶相同表示一个空栈(*S).stacksize = STACK_INIT_SIZE;return 1;}// 若栈 S 为空栈(栈顶与栈底相同的),则返回 1,否则返回 0。int StackEmpty(SqStack S){if(S.top == S.base)return 1;elsereturn 0;}//插入元素 e 为新的栈顶元素。int Push(SqStack *S, SElemType e){if((*S).top - (*S).base >= (*S).stacksize)// 栈满,追加存储空间{(*S).base = (SElemType *)realloc((*S).base , ((*S).stacksize + STACKINCREMENT) * sizeof(SElemType));if( !(*S).base )exit(0);(*S).top = (*S).base+(*S).stacksize;(*S).stacksize += STACKINCREMENT;}*((*S).top)++=e;// 这个等式的++ * 优先级相同,但是它们的运算方式,是自右向左return 1;}//若栈不空,则删除 S 的栈顶元素,用 e 返回其值,并返回 1;否则返回 0。int...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

数据结构栈求解迷宫问题C语言版

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部