一需求分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.需求分析:

(1)迷宫:以二维数组mzae[m+2][n+2]表示迷宫,其中:maze[0][j]和maze[m+1][j](0=

(2)二叉树:以二叉链表存储表示。输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立建立二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数。

二.概要设计:

迷宫:

typedef struct {

int x;//下标

int y;//下标

} DataType;

struct SeqStack { //序栈类型定义

int t; //示栈顶位置

DataType s[MAXNUM];

};

typedef struct SeqStack *PSeqStack; //序栈类型的指针类型

/***************建立迷宫****************/

void initmaze(maze[][N])

//建立迷宫

/*******************栈函数**********************/

PSeqStack createEmptyStack_seq()

//建立空栈

//若创建成功则返回栈的首地址,否则输出Out of space!!

int isEmptyStack_seq( PSeqStack pastack )

//判栈是否空

//若栈空则返回1,否则返回0

void push_seq( PSeqStack pastack, DataType x )

//在栈中压入一元素x,y,d

void pushtostack(PSeqStack st, x, y)

void pop_seq( PSeqStack pastack )

//删除栈顶元素

DataType top_seq( PSeqStack pastack )

//当pastack所指的栈不为空栈时,返回栈顶元素的值

void printpath(PSeqStack st)

//打印路径上的每一点

/*********************求迷宫的路径********************/

void mazePath(maze[][N], direction[4][2], x1, y1, x2, y2)

//求迷宫的路径如找到路径则调用printpath()输出路径,否则输出The path has not been found!

/***********************主函数********************/

int main(){

创建迷宫

求迷宫路径

return 0

}

(2)二叉树:

typedef struct node{

char data;

struct node *lchild,*rchild;

}BinTNode; //自定义二叉树的结点类型

typedef BinTNode *BinTree; //定义二叉树的指针

//==========基于先序遍历算法创建二叉树==============

//=====要求输入先序序列,其中加入虚结点"#"以示空指针的位置========== BinTree CreatBinTree(void)

//创建二叉树如果创建成功则返回二叉链表首地址,否则返回空指针

//========NLR 先序遍历=============

void Preorder(BinTree T)

//基于二叉链表对二叉树进行先序遍历

//=====采用后序遍历求二叉树的深度、结点数的递归算法========

int TreeDepth(BinTree T)

//基于二叉链表求树深算法求二叉树节点数目

//====利用"先进先出"(FIFO)队列,按层次遍历二叉树==========

void Levelorder(BinTree T)

//基于二叉链表对二叉树进行层序遍历

//==========主函数=================

void main()

{

建立二叉树

do { //从菜单中选择遍历方式,输入序号。

switch (i){

i为1时先序遍历

i为2时层序遍历

i为0时退出整个循环体

}

} while(i!=0)

}

三.详细设计:

迷宫:

#include

#include

#define MAXNUM 100//栈中最大元素个数

#define N 10 //图的第一维长度

typedef struct {

int x;//下标

int y;//下标

} DataType;

struct SeqStack { //序栈类型定义

int t; //示栈顶位置

DataType s[MAXNUM];

};

typedef struct SeqStack *PSeqStack; //序栈类型的指针类型

/***************建立迷宫****************/

void initmaze(char maze[][N])

{

int i,j;

int m,n; //迷宫行,列

printf("请输入迷宫的行数 m=(m的值不能大于8):\n");

scanf("%d",&m);

printf("请输入迷宫的列数 n=(m的值不能大于8):\n");

scanf("%d",&n);

printf("\n请输入迷宫的各行各列(用空格隔开):\n <注意>:\n 1.输入$代表路.\n 2.输入#代表墙.\n");

相关文档
最新文档