哈工大数据结构大作业 - 迷宫老鼠

2026/4/23 18:31:31

1.数据结构

1.1栈的指针实现 struct node{ Elementtype val; node *next; };

typedef node *STACK; 对应为:

struct node {

int val1; int val2; node *next; };

Node结构体,存放整形数据val1、 val2及指针*next用来指向后继的位置。

1.2压栈操作

void Push(Elementtype x, STACK S) {

STACK stk; stk = new node; stk->val = x; stk->nex = S->next; S->next = stk; }

对应为void Push(int x,int y, STACK S)

{

STACK stk; stk = new node; stk->val1 = x; stk->val2 = y; stk->next = S->next; S->next = stk;

}//压栈

1.3建立空栈

void MakeNull(STACK &S) {

S = new node; S->next = NULL; }

对应为:void MakeNull(STACK &S) {

S = new node; S->next = NULL;

}//栈的初始化

1.4弹栈

void Pop(STACK S) {

STACK stk; if(S->next){ stk = S->next; S->next = stk->next; delete stk; } }

对应为:void Pop(STACK S) {

STACK stk; if(S->next){ }

stk = S->next; S->next = stk->next; delete stk;

}//弹栈

1.5 返回栈顶元素 Elementtype Top(STACK S) {

if(S->next)

return(S->next->val); else

return NULL; }

2.源程序代码及注释

#include \#include \#include \

int** maze(int p,int q,float r)//用来生成动态迷宫,通路用表示;障碍用表示 {

int i, j; int t,c; int **a;

float rr;//用来控制迷宫中通路与障碍的比例 a = (int**)malloc(sizeof(int*)*p);//动态数组 for(j=0;j

for(i=0;i

for(j=0;j

for(i=0;i

for(j=0;j

{

if(i*j==0||i==(p-1)||j==(q-1)) {

t=1;

}//边界的墙,置为

else if(rand() % 100 < rr) {

t=0;

}//迷宫中由用户输入的比例随机生成、 else { t=1; }

a[i][j]=t;

a[1][1]=a[p-2][q-2]=0; }//令出入口为

a[j] = (int*)malloc(sizeof(int)*q); for(c=0;c<(p*q);c++)

p=p+2;q=q+2;rr=100*r;//避免边界检测,扩充迷宫


哈工大数据结构大作业 - 迷宫老鼠.doc 将本文的Word文档下载到电脑
搜索更多关于: 哈工大数据结构大作业 - 迷宫老鼠 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219