数据结构课程设计报告

发布 2022-10-05 03:06:28 阅读 3039

数据结构课程设计。实。验。

报。告。

学号。姓名。学院。

课程设计报告。

一、课程设计概述:

本次数据结构课程设计共完成两个题:迷宫问题,内部排序算法的性能分析。

使用语言:c

编译环境:vc++6.0

二、课程设计题目一。

实验内容]迷宫问题。

问题描述]以一个m*n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论。

需求分析]1) 实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。

2) 编写递归形式的算法,求得迷宫中所有可能的通路;

3) 以方阵形式输出迷宫及其通路。(选做)

概要设计]stacknode creat() 创建迷宫。

int found(int x,int y,point *h) /查找该点是否在迷宫通路**现,出现返回1,没出现返回0

point *secret(stacknode *s) /求迷宫中的通路。

void disp(point *p,stacknode *s) /输出迷宫通路。

存储结构]typedef struct stacknode //记录迷宫。

int arry[maxsize][maxsize]; 迷宫是一个二维数组。

int m,n; /迷宫的行数和列数。

stacknode;

typedef struct point //记录迷宫中的结点。

int i,j; /结点的横纵坐标。

struct point *next; /指向下一个结点的指针。

int d; /迷宫行走方向。

point;

流程图]stacknode creat() 创建迷宫。

int found(int x,int y,point *h)//查找该点是否在链栈**现过,出现返回1,没出现返回0

point *secret(stacknode *s) /返回迷宫中的一条通路。

void disp(point *p,stacknode *s) /输出迷宫通路

详细设计]#include <>

#include <>

#define maxsize 100

#define null 0

typedef struct stacknode //定义迷宫

int arry[maxsize][maxsize];

int m,n;

stacknode;

typedef struct point

int i,j;

struct point *next;

int d;

point;

stacknode creat()

stacknode s;

int i,j;

printf("enter row and lie:")

scanf("%d%d",&输入迷宫的行数和列数。

for(i=1;i<=

return s;

int found(int x,int y,point *h)

point *p=h;

while(p!=null)

return 0;

point *secret(stacknode *s) /迷宫函数,返回一条通路,没有通路返回null

point *top,*p; /top为链栈的栈顶指针。

int d,m,x,y;

p=(point *)malloc(sizeof(point));p为当前处理结点的指针。

p->i=1;

p->j=1;

p->next=null;

top=p;

d=1; /d为方向,1,2,3,4分别为东,南,西,北。

doif(d>4) /4个方向都找不到符合条件的结点时。

}while(top->i!=s->m||top->j!=s->n); 如果当前结点不是出口,则继续进行do循环。

return top;

void disp(point *p,stacknode *s)

int i=0,top=0;

point *stack[maxsize];

if(p==null)

printf("no load!");

elsewhile(top>0)

printf("");

void main()

stacknode s,*st;

st=&s;

point *p;

s=creat();

p=secret(st);

disp(p,st);

getchar();

调试分析]本程序主要的操作对象是记录链栈数组,使用的存储结构是链栈。当迷宫中的结点在4个方向都走不通的情况下,用回朔的方法出栈。考虑到栈是先进后出,输出结果是反的,因此要重新赋给一个顺序栈正序输出。

运行结果及分析]

结果正确。三、课程设计题目二。

实验内容]内部排序算法的性能分析。

问题描述]设计一个测试程序比较几种内部排序算法的关键字比较次数和移动次数以取得直观感受。

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...