全球旧事资料 分类
以避免发生死循环,每次达到了某点ij
后,改变mazeij的值,迷宫栈的实现直接置1,算法结束前恢
复原迷宫;而迷宫递归是将当前值置为已走的步骤,这样输出时
对走过的路更显而易见。
(1)栈的函数设计:
栈的初始化函数I
it_SeqStack
判栈空
Empty_SeqStack
入栈函数
Push_SeqStack
出栈函数
Pop_SeqStack
取栈顶函数GetTop_SeqStack
销毁栈
Destroy_SeqStack
5、程序代码
迷宫栈:
i
cludestdiohi
cludestdlibhdefi
eMAXSIZE100defi
em3defi
e
3typedefstructi
txyitemitemmove4
定义迷宫的行数和列数,可更改路线移动的方向坐标
ftypedefstructi
txydDatatype
typedefstructDatatypedataMAXSIZEi
ttopSeqStackPSeqStack
横纵坐标及方向定义栈
PSeqStackI
it_SeqStackvoid
初始化栈

PSeqStackS
SPSeqStackmallocsizeofSeqStack
ifS
Stop1
retur
S

i
tEmpty_SeqStackPSeqStackSifStop1
retur
1else
retur
0
判栈空
i
tPush_SeqStackPSeqStackSDatatypexifStopMAXSIZE1
retur
0else
StopSdataStopxretur
1
入栈
i
tPop_SeqStackPSeqStackSDatatypexifEmpty_SeqStackS
retur
0
出栈
felse
xSdataStopStopretur
1
voidDestroy_SeqStackPSeqStackSifS
freeSSNULLretur

毁栈
i
tmazepathi
tmaze
2itemmove4i
tx0i
ty0迷宫功
能实现函数
求迷宫路径,入口参数:迷宫数组,下标移动的增量数组,开始点(x0,
y0),0(m
)是终点,返回值:1表示求出路径,0表示无路径
PSeqStackS
Datatypetemp
i
txydij
tempxx0
tempyy0
tempd1
SI
it_SeqStack
初始化栈
ifS

pri
tf
好听全球资料 返回顶部