数据结构课程设计

发布 2022-10-05 02:06:28 阅读 3065

学院:班级:姓名:

学号:题目: 车厢调度。

班级姓名: 学号:

日期:一、 需求分析。

1) 首先教科书3.1.2节中提供栈的顺序存储结构sqstack之上实现栈的基本操作,即实现栈类型,程序对栈的任何存取必须借助基本操作进行,假设停在铁路调度站入口处的车厢序列为1,2,3 n。

设计一个程序,求出所有可能由此输出的长度为n的车厢序列。

2) 测试数据。

分别取n=1,2,3,4

3) 实现提示。

在操作过程中任何状态下都有两种可能的操作:出和人。每个状态下处理问题的方法都是相同的,这说明问题本身具有天然的递归性,可以考虑递归算法实现。

输入序列可以仅有一对整形变量表示,即给出序列头和尾编号。输出序列用栈实现是方便的,自底至顶顺序印出栈元素的值。

4) 选做内容。

利用双栈存储结构实现调度站的和输出序列这两个站的共享。

对于每个输出序列印出操作序列或状态变化过程。

二、概要设计。

设定栈的抽象数据类型定义:

adt stack

数据关系:r1=

基本操作:initstack(&s)

初始条件: 栈已存在。

操作结果:构造一个空栈。

destroystack(&s)

初始条件:栈已存在。

操作结果:销毁栈。

clearstack(&s)

初始条件:栈已存在。

操作结果:将栈清空。

stacklength(&s)

初始条件:栈已存在。

操作结果:返回栈的长度。

stackempty(&s)

初始条件:栈已存在。

操作结果:判空。

getop(&s,e)

初始条件:栈已存在。

操作结果:返回顶元素。

push(&s,e)

初始条件:栈已存在。

操作结果:插入元素。

pop(&s,&e)

初始条件:栈已存在。

操作结果:删除栈顶元素,并返回其值。

三、 详细设计。

#include<>

#include<>

struct sqstack

int data[10];

int top;

*s; void initstack()

s=(struct sqstack *)malloc(sizeof(struct sqstack));

s->top=0;

void push(int m)

s->data[s->top]=m;

(s->top)++

int pop()

int a;

a=s->data[--s->top)];

return a;

int stackempty(struct sqstack*s)

if(s->top==0)return 1;

else return 0;

void f(int seri,int pri[10],int i,int n)

int m,j;

if(seri

if(!stackempty(s))

if(seri==n&&stackempty(s))

void main()

int pri[10],n;

printf("请输入最大车厢序列编号:")

scanf("%d",&n);

initstack();

push(1);

f(1,pri,0,n);

四、调试分析。

主要实现出栈与压栈的操作,算法部分即对递归的深层理解,如何进行递。

归调用,结果如何返回上层。

五、测试结果:

n=1n=2

n=3n=4

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...