c语言课程设计报告_数独

2018-12-29 23:18

课程设计

设计题目 数独解谜程序

学生姓名 学号

专业班级 指导教师 2015年4月20日

目 录

一、使用资料 ................................................................. 错误!未定义书签。 二、设计内容 ..................................................................................................... 11 三、详细设计说明 ............................................................................................ 12 四、软件使用说明 ............................................................................................ 13 五、附录:部分程序清单(带有较详细的注释).................................. 19

1

一、 使用资料

C++中栈结构建立与操作

什么是栈结构

栈结构是从数据的运算来分类的,也就是说栈结构具有特殊的运算规则,即:后进先出。

我们可以把栈理解成一个大仓库,放在仓库门口(栈顶)的货物会优先被取出,然后再取出里面的货物。

而从数据的逻辑结构来看,栈结构起始就是一种线性结构。

如果从数据的存储结构来进一步划分,栈结构包括两类: 顺序栈结构:

即使用一组地址连续的内存单元依次保存栈中的数据。在程序中,可以定义一个指定大小的结构数组来作为栈,序号为0的元素就是栈低,再定义一个变量top保存栈顶的序号即可。 链式栈结构:

即使用链表的的形式保存栈中各元素的值。链表首部(head指针所指向元素)为栈顶,链表尾部(指向地址为NULL)为栈底。

在栈结构中只能在一端进行操作,该操作端称为栈顶,另一端称为栈底。也就是说,保存和取出的数据都只能从栈结构的一端进行。从数据的运算角度来分析,栈结构是按照“后进先出”的原则处理结点数据的。

2

在栈结构中,只有栈顶元素是可以访问的,栈结构的数据运算也是非常简单。一般栈结构的基本操作只有两个:

入栈(Push):将数据保存到栈顶的操作。进行入栈操作前,先修改栈顶指针,使其向上移一个元素位置,然后将数据保存到栈顶指针所指的位置。

出栈(Pop):将栈顶数据弹出的操作。通过修改栈顶指针,使其指向栈中的下一个元素。

接下来,我们使用C++语言建立顺序栈,并完成顺序栈结构的基本运算

准备数据

准备在栈操作中需要用到的变量及数据结构等。

#define MAXLEN 50 struct DATA {

string name; int age; };

struct StackType {

DATA data[MAXLEN+1]; int top; };

3

定义栈结构的长度MAXLEN,栈结构的数据元素类型DATA,以及栈结构的数据结构StackType。在数据结构StackType中,data为数据元素,top为栈顶的序号。当top=0时,表示栈为空,当top=MAXLEN时表示栈满。

数组元素都是充下标0开始的,这里为了讲述和理解方便,我们从下标1开始记录数据结点,下标0的位置不用。 初始化栈结构

在使用栈结构之前,首先需要创建一个空的顺序栈,也就是初始化顺序栈。顺序栈的初始化操作如下:

(1)按照符号常量MAXLEN指定大小申请一片内存空间,用来保存栈中的数据

(2)设置栈顶指针的值为0,表示一个空栈。

示例代码如下:

StackType *STInit() {

StackType *p;

if(p=new StackType) //申请栈空间 {

p->top=0; //设置栈顶为0 return p; //返回栈顶指针 }

4


c语言课程设计报告_数独.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:新视野英语一级试题及答案3

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

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