摘要:
本文是对严蔚敏老师的数据结构一书中,第3.2.5一节 表达式求值问题的实现采用的基本思想是“算符优先法”,即: (1)先乘除,后加减; (2)从左到右计算; (3)先括号内,后括号外实现的方式:采用两个工作栈,一个寄存运算符;一个寄存运算数; (1)首先置操作数栈为空,置操作符栈'='作为栈底元素; (2)依次分析表达式的每个字符,如果是操作数则进操作数栈,若是操作符,则和操作符栈的栈顶元素比较优先级后作出相应操作,直到整个表达式求值完毕(即字符串分析完毕或操作符栈的栈顶元素为'=')运算符优先级采用二维数据保存,优先关系如下图:源码如下:CalcExp.c 1 阅读全文
摘要:
本文是对严蔚敏老师的数据结构一书中,第3.2.4一节 迷宫求解问题的实现迷宫图如下所示本代码用到的栈为上一篇文章中的链表栈ElemType.h 1 #ifndef _ELEMTYPE_H_ 2 #define _ELEMTYPE_H_ 3 4 /*定义需要的数据类型,这里可以是基本数据类型,也可以是结构体数据类型, 5 结构体中最好不要使用指针,使用结构体时请包含相关头文件*/ 6 7 typedef struct{ 8 int x; //横向坐标 9 int y; //纵向坐标10 }PosType;11 1... 阅读全文
摘要:
LinkList.h 1 /********************************************************************* 2 *: 3 *: 4 *: Author: dspeeding 5 *: Copyright (c) 2012, dspeeding 6 *: 7 *: Created at: 2012.06.15 8 *: Last modified: 2012.06.15 9 *: 10 *: Introduction: 链... 阅读全文
摘要:
栈:是一种线性表,是一种限定在表尾进行杀入和删除操作的特殊线性表。栈的数组实现:ArrayStack.h 1 /********************************************************************* 2 *: 3 *: 4 *: Author: dspeeding 5 *: Copyright (c) 2012, dspeeding 6 *: 7 *: Created at: 2012.06.15 8 *: Last modified: 2012.06.15 9 ... 阅读全文