• 大小: 285KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: C/C++
  • 标签: C代码  

资源简介

不用递归实现迷宫问题求解 vc6.0下运行

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “stack.h“
/*
打开日志文件
*/
void open_log_file(FILE *fp)
{
fp=fopen(“log_file.txt““w“);
}
/*
关闭日志文件
*/
void close_log_file(FILE *fp)
{
fclose(fp);
}

/*
迷宫情况输出
*/
void maze_situation(MAZE_PATH (*p)[ROW_LEN+2])
{
int i=0;
int j=0;

puts(“maze path is:“);
if(*p==NULL)
{
return;
}

for(i=0;i {
for(j=0;j {
printf(“%2d“p[i][j].val);
}
putchar(‘\n‘);
}
}


//初始化栈
void InitStack(SqStack **pStack int len)
{
SqStack *p=*pStack;
*pStack = (SqStack *)malloc(sizeof(SqStack));
if (NULL == *pStack)
{
return;
}

(*pStack)->stack_len = len;

(*pStack)->pbase = (MAZE_PATH *)malloc(sizeof(MAZE_PATH)*len);
if (NULL == (*pStack)->pbase)
{
return;
}
(*pStack)->pTop = (*pStack)->pbase;
}

bool IsFull(SqStack *pStack)//栈是否满
{
if((pStack->pbase+pStack->stack_len)==pStack->pTop)
{
return true;
}
else
{
return false;
}
}

bool IsEmpty(SqStack *pStack)//栈是否空
{
if(pStack->pbase==pStack->pTop)
{
return true;
}
else
{
return false;
}
}

//压栈
void push(SqStack *pStack MAZE_PATH val)
{
if (IsFull(pStack))
{
puts(“full stack“);
return;
}

*(pStack->pTop) = val;
pStack->pTop++;
}

//出栈
void pop(SqStack *pStack MAZE_PATH &val)
{
if (IsEmpty(pStack))
{
puts(“empty stack“);
return;
}

(pStack->pTop)--;

val = *(pStack->pTop);
}


/*
取栈顶元素
*/
void GetTopVal(SqStack *pStack MAZE_PATH &val) 
{
MAZE_PATH *pTemp = NULL;

if (IsEmpty(pStack))
{
// puts(“empty stack“);
return;
}

pTemp = pStack->pTop-1;

val = *pTemp;
}

/*
打印栈顶数据
*/
void print_stack(SqStack *pStack) 
{
MAZE_PATH val;

puts(“the path to go out is:“);
while(!IsEmpty(pStack))
{
pop(pStackval);
printf(“(%d%d)<==“val.row_posval.colu_pos);
}
putchar(‘\n‘);

}

/*
用户构建迷宫
*/
void Build_maze_path(MAZE_PATH (*p)[ROW_LEN+2])
{
int i=0;
int j=0;
int row_len=ROW_LEN;
int colu_len=COLU_LEN;
    
printf(“please inputs %d*%d maze path\n“row_lencolu_len);
for(i=1;i<=ROW_LEN;i++)
{
for(j=1;j<=COLU_LEN;j++)
{
(p[i]+j)->row_pos=i;
(p[i]+j)->colu_pos=j;
scanf(“%d“&((p[i]+j)->val));
}
}
}

/*
 迷宫初始化
*/
void init_maze_path(MAZE_PATH (*p)[ROW_LEN+2])
{
int i=0;
int j=0;

for(i=0;i {
(p[0][i]).val=1;
(p[0][i]).stInfo->enWayState=EN_STATE_DISABLE;
}
        
    for(j=1;j {
(p[j][0]).val=1;
(p[j][0]).stInfo->enWayState=EN_STATE_DISABLE;
}
        
    for(i=1;i {
(p[COLU_LEN+1][i]).val=1;
(p[COLU_LEN+1][i]).stInfo->enWayState=EN_STATE_DISABLE;
}

    for(j=1;j {
(p[j][ROW_LEN+1]).val=1;
(p[j][ROW_LEN+1]).stInfo->enWayState=EN_STATE_DISABLE;
}

for(i=1;i<=ROW_LEN;i++)
{
for(j=1;j<=COLU_LEN;j++)
{
(p[i]+j)->stInfo->en

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2013-04-04 16:18  lyq_3_31_stack\
     目录           0  2013-04-03 23:22  lyq_3_31_stack\Debug\
     文件       14899  2013-04-03 23:20  lyq_3_31_stack\Debug\stack.obj
     文件           0  2013-04-03 23:20  lyq_3_31_stack\Debug\stack.sbr
     文件        2027  2013-03-31 11:24  lyq_3_31_stack\Debug\StdAfx.obj
     文件        7198  2013-03-31 11:24  lyq_3_31_stack\Debug\StdAfx.sbr
     文件      107520  2013-04-03 23:20  lyq_3_31_stack\Debug\test_3_31.bsc
     文件      196668  2013-04-03 23:20  lyq_3_31_stack\Debug\test_3_31.exe
     文件      207888  2013-04-03 23:20  lyq_3_31_stack\Debug\test_3_31.ilk
     文件        2313  2013-04-03 23:20  lyq_3_31_stack\Debug\test_3_31.obj
     文件      220768  2013-03-31 11:24  lyq_3_31_stack\Debug\test_3_31.pch
     文件      476160  2013-04-03 23:20  lyq_3_31_stack\Debug\test_3_31.pdb
     文件           0  2013-04-03 23:20  lyq_3_31_stack\Debug\test_3_31.sbr
     文件       58368  2013-04-03 23:20  lyq_3_31_stack\Debug\vc60.idb
     文件       61440  2013-04-03 23:20  lyq_3_31_stack\Debug\vc60.pdb
     文件        1226  2013-03-31 09:42  lyq_3_31_stack\ReadMe.txt
     文件        5547  2013-04-03 23:19  lyq_3_31_stack\stack.cpp
     文件        2812  2013-04-03 23:20  lyq_3_31_stack\stack.h
     文件         296  2013-03-31 09:42  lyq_3_31_stack\StdAfx.cpp
     文件         811  2013-03-31 11:23  lyq_3_31_stack\StdAfx.h
     文件         627  2013-04-03 23:01  lyq_3_31_stack\test_3_31.cpp
     文件        4692  2013-03-31 11:57  lyq_3_31_stack\test_3_31.dsp
     文件         541  2013-03-31 09:42  lyq_3_31_stack\test_3_31.dsw
     文件       82944  2013-04-04 16:18  lyq_3_31_stack\test_3_31.ncb
     文件       49664  2013-04-04 16:18  lyq_3_31_stack\test_3_31.opt
     文件        1674  2013-04-03 23:20  lyq_3_31_stack\test_3_31.plg

评论

共有 条评论