数据结构大型实验题目-2014年

合集下载

2014年广东省数据结构试题及答案(必备资料)

2014年广东省数据结构试题及答案(必备资料)
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
46、链表不具备的特点是 A 。
A.可随机访问任一结点 B.插入删除不需要移动元素
C.不必事先估计存储空间 D.所需空间与其长度成正比
47、在决定选取何种存储结构时,一般不考虑 A 。
3、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior
B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior
D.依附于对应顶点v的边数
44、若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用
D 存储方式最节省运算时间。
A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表
45、数据结构中,从逻辑上可以把数据结构分成(?)。
A.二分查找 B.顺序查找 C.分块查找 D.索引顺序查找
35、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进 C.分析算法的易读性和文档性
A.用n个结点构造的哈夫曼树是唯一的
B.哈夫曼树中只有度为0或度为2的结点
C.树中两个权值最小的结点可能是兄弟结点
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
21、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。

2014年湖北省数据结构试题集(10套题并附带答案)最新考试试题库(完整版)

2014年湖北省数据结构试题集(10套题并附带答案)最新考试试题库(完整版)
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
26、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior
D.{102,60。89,93,55,24}
30、在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行 B 操作与链表的长度有关。
A.删除单链表中的第一个元素
B.删除单链表中的最后一个元素
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
C.head->next ==head D head!=NULL
24、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
25、在以下的叙述中,正确的是 B 。
A.线性表的顺序存储结构优于链表存储结构
39、下列选项中,符合堆定义的是
A.{102,24,55,60,89,93}
B.{24,89,55,60,93,102}
C.{102,93,55,60,89,24}
D.{102,60。89,93,55,24}
40、对于图1所示的二叉树,其后序序列为(C )。
A)ABDECFG B)DBEAFCG
B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior

2014数据结构试题及答案

2014数据结构试题及答案
等于
124.【第7章图】在图的邻接表中用顺序存储结构存储表头结点的优点是____________________。
可以随机访问到任一个顶点的简单链表
125.【第8章图的应用】设有向图G中有向边的集合E={<1,2>,<2,3>,<1,4>,<4,2>,<4,3>},则该图的一种拓扑序列为____________________。
105.【第2章线性表】设有一个顺序循环队列中有M个存储单元,则该循环队列中最多能够存储________个队列元素;当前实际存储________________个队列元素(设头指针F指向当前队头元素的前一个位置,尾指针指向当前队尾元素的位置)。
M-1,(R-F+M)%M
106.【第2章线性表】设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中_______个数据元素;删除第i个位置上的数据元素需要移动表中_______个元素。
8,64
119.【第5章树】设二叉树中度数为0的结点数为50,度数为1的结点数为30,则该二叉树中总共有_______个结点数。
129
120.【第5章树】设二叉树中结点的两个指针域分别为lchild和rchild,则判断指针变量p所指向的结点为叶子结点的条件是_____________________________________________。
p->lchild==0&&p->rchild==0
121.【第6章特殊树】设哈夫曼树中共有n个结点,则该哈夫曼树中有________个度数为1的结点。
0
122.【第7章图】设有向图G中有n个顶点e条有向边,所有的顶点入度数之和为d,则e和d的关系为_________。

2014年郑大《数据结构》在线测试满分题

2014年郑大《数据结构》在线测试满分题
A、随机存取
B、顺序存取
C、插入删除需要移动元素
D、事先估计存储空间的大小
E、插入删除只需要修改指针 4、在双向循环链表(L 为头指针)中,指针 p 所指结点为尾结点的条件是________。
A、p==L
B、p->next==L
C、L->prior==p
D、L->next==p 5、在双向链表中,每个结点有两个指针域,分别指向________。
A、可以是连续的
B、可以是不连续的
C、必须是连续的
D、必须是不连续的 2、在双向循环链表中,若 s 是指向表中某结点的指针,则________。
A、s->next==s
B、s->next->prior==s
C、s->prior->next ==s
D、s-> prior==s 3、顺序表具备的特点有________。
A、其自身
B、其直接前驱结点
C、其直接后继结点
D、头结点 第三题、判断题(每题 1 分,5 道题共 5 分)
1、顺序表能够以元素在计算机内的物理位置的相邻性来表示线性表中元素之间的逻辑关系。
正确 2、在循环链表中设尾指针比设头指针方便。 ( )
错误
正确
错误
3、线性表的顺序存储结构优于链式存储结构。 ( )
C、所含字符个数相同
D、串值相等 4、以下关于串长的说法正确的是__________。
A、串长相等的两个串相等
B、括串值的引号不被计算在串长之内
C、空串的长度为 0
D、空格串的长度为 0 5、以下关于块链结构的说法正确的是__________。
A、结点大小小,则存储密度小
B、结点大小小,则存储密度大
第三题、判断题(每题 1 分,5 道题共 5 分) 1、n 个叶子的 Huffman 树共有 2n-1 个结点。

数据结构1252本2013一2014学年度第一学期期末考试

数据结构1252本2013一2014学年度第一学期期末考试

试卷代号:1252中央广播电视大学2013-2014学年度第一学期“开放学科”期末考试数据结构(本)试题2014年1月一、单项选择题(每小题2分,共30分)1. 在数据结构和算法中,与所使用的计算机有关的是(B)。

A.数据元数间的抽象关系 B.数据的存储结构C.算法的时间复杂度 D.数据的逻辑结构2.对顺序表,以下叙述中正确的是 ( A )。

A.用一组地址连续的存储单元依次存放线性表的数据元素B.各个数据元素的首地址是连续的C.数据元素不能随机访问D.插入操作不需要移动元素3.设有一个长度为25的顺序表,要删除第10个元素(下标从1开始),需移动元素的个数为(C)。

A.9 B.10 C.15 D.164. 设单向链表中,指针p指向结点A,若要删除A的直接后继,则所需修改指针的操作为( A)。

A.p->next=p->next->next;B.p=p->next;C.p=p->next->next;D.p->next=p ;5.元素1,3,5,7按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列的可能输出序列是(A)。

(进栈出栈可以交替进行)。

A.7,5,3,1 B.7,3,1,5C.7,5,1,3 D.5,1,3,76.对一个栈顶指针为top的链栈进行进栈操作,设P为待进栈的结点,则执行(C)。

A.p=top->next; top=top next; B.p->next=top;C.p->next=top;top=p; D.top=p;7.设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第33号元素对应于矩阵中的元素是(D)。

(矩阵中的第1个元素是a1,1)A.a7,6 B.a10,8C.a9,2 D.a8,58.设有一个17阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素a10,6在一维数组B中的下标是(C)。

数据结构实验五_三叉树

数据结构实验五_三叉树
tree=NULL; else {
tree=(TRITREE)malloc(sizeof(TriTreeNode)); tree->elem=ch; tree->lchild=CreatTree(tree->lchild); tree->rchild=CreatTree(tree->rchild); //增加 parent 指针,若无左右孩子则不用赋值
三.关键数据结构与算法描述
关键数据结构: 三叉链表的数据结构如下:
typedef char ElemType; typedef struct TriTree {
ElemType elem; struct TriTree *lchild,*rchild,*parent; }*TRITREE,TriTreeNode;
{
tree=tree->rchild;//若有右子树,则移位
mark=0;
//标记未遍历,回到上步
}
else
{ //若无右子树,则回溯
while(1) {
p=tree; tree=tree->parent; if(!tree)
break; if(tree->lchild == p) {
mark=1;//表示左孩子遍历过
tree->rchild->parent=tree;//指向双亲节点 }
然后是三序遍历,1.首先是先序非递归遍历,先遍历头节点,再遍历左
子树,然后是右子树,注意到从此处的双亲指针的用法,可以回溯。因
此,当树不为空的时候,首先遍历该节点,然后看是否有左子树,若有
则指向左子树,若无左子树,则看是否有右子树,若有则指向右子树。
如果左右子树都不存在,则是叶子节点需要回溯。选定一个“记录指针

数据结构实验题目

数据结构实验题目

实验题目一一、单链表基本运算【问题描述】设计并实现线性表的单链表存储和运算。

【基本要求】实现单链表的插入、删除和遍历运算,每种操作用一个函数实现。

插入操作:将一个新元素插入表中指定序号的位置。

删除操作:将指定序号的元素从表中删除。

遍历操作:从表头按次序输入所有元素的值,若是空表,则输出信息“empty list!”。

【实现提示】程序运行时,首先在main函数中创建空的、带头结点的单链表。

然后多次调用实现插入操作的函数(每次都将元素在序号1位置上插入),将元素依次插入表中,最后调用实现遍历操作的函数输出所有元素。

之后再多次调用实现删除操作的函数将表还原为空表(每次都删除第1个元素,每删除一个元素后,将表中剩余元素都输出一次)。

【测试数据】输入数据:1 2 3 4 5 0(为0时结束,0不存入链表)第一次输出:5 4 3 2 1第二次输出:4 3 2 1第三次输出:3 2 1第四次输出:2 1第五次输出:1第六次输出:empty list!二、约瑟夫环问题【问题描述】编号为1,2,...,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。

现在给定一个随机数m>0,从编号为1的人开始,按顺时针方向1开始顺序报数,报到m时停止。

报m的人出圈,同时留下他的密码作为新的m值,从他在顺时针方向上的下一个人开始,重新从1开始报数,如此下去,直至所有的人全部出列为止。

【基本要求】利用单向循环链表存储结构模拟此过程,按照出列的顺序印出各人的编号。

【测试数据】M的初始值为20;n等于7,7个人的密码依次为:3,1,7,2,4,8,4。

输出为:6,1,4,7,2,3,5【实现提示】程序运行时,首先要求用户指定初始报数上限值,然后读取各人的密码。

可设n≤30。

此题所用的循环链表中不需要“头结点”,请注意空表和非空表的界限。

【选作内容】用顺序存储结构实现该题目。

三、一元多项式相加、减运算器【问题描述】设计一个一元稀疏多项式简单计算器。

全国2014年10月自考《数据结构》试题及其答案【在最后】

全国2014年10月自考《数据结构》试题及其答案【在最后】

大题共4小题,每小题5分。

共20分)
请在答题卡上作答。

26.设Q是有N个存储空间的循环队列,初始状态front=rear=0,约定指针rear指向的单元始终为空,回答下列问题。

请根据最优二叉树的基本原理,采用类C语言,描述你所设计的成绩判定过程。

29.给定有向无环图G如题29图所示,写出G的5种不同的拓扑排序序列。

的单链表定义如下,其中freq域记录本结点被访问的次数,初值为0,单链表始终以freq 序。

函数f3l完成的功能是:查找给定关键字所在结点,若查找成功,则该结点的freq域加值调整结r旨位置。

请将空白处(1)~(3)补充完整。

在答题卡上作答。

回答下列问题。

五、算法设计题(本大题共l小题,共“l0分) 请在答题卡上作答。

34.已知带头结点的单链表类型定义如下:
- 10 -。

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

[大型实验基本要求]
1.原则上可以1-3位同学组成实验小组,进行分工合作,但必需保证每位组员都充分参
与实验过程,每位组员应对实验程序的结构、算法、主要技术完全掌握,方可参加实验验收。

但一个小组内最终只能一个人得到优秀成绩。

2.每组可参考下面大型实验题目和要求,选择一道实验题目,共同设计开发。

3.大型实验时间从第8周开始至16周,要求在考试之前全部验收结束。

原则上,申请大
型实验验收后,若实验没有达到规定的要求,不可再次申请验收,故请大家务必确认程序正确(程序代码和运行结果)后,再申请验收。

[报告规范]
实习报告的开头应该给出题目、班级、姓名、学号、和完成日期,如果是多人完成的,必须写明所有同组人员的班级、姓名和学号,并标明谁是主要负责人,其它为参与者。

实验报告要求有以下五个内容:
1.实验内容分析:明确实验题目目的,设计实验的基本数据结构、类、以及程序的基本流程,程序流程要求以程序流程图明确表示,类及类间关系需明确图示,并给出各函数之间的调用关系。

可以适当粘贴关键代码进行说明;
2.实验验证分析:
(1)输入的形式和输入值的范围;
(2)输出的形式;
(3)程序所能达到的功能;
(4)测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。

3.调试分析
(1)讨论分析调试过程中的主要技术问题以及具体的解决方法(至少3个);
(2)技术难点分析(至少3个);
(3)印象最深刻的3个调试错误,及修正方法;
4.测试结果:
(1)展示程序的运行结果,包括输入和输出,分析数据的正确性;
(2)应用边界数据、或极端数据测试系统,分析结果的正确性。

5.附录:附上源代码,并标明源代码的所属文件,并且源代码必须有注释。

[提交内容]
1.电子压缩包:包括实验报告电子稿和所有源代码文件(包括.h文件和.cpp文件)。

2.压缩文件名为:“学号+姓名”;如果是多人合作的,则压缩文件名为:“负责人学号+
负责人姓名+参与者1学号+参与者1姓名+参与者2学号+参与者2姓名”。

[考核方式]
1.以小组方式进行面试,教师提问,结合工作分工和系统完成情况评分。

2.小组内只能一人得优。

[题目]
一、 用户登录系统的模拟
【问题描述】在登录服务器系统时,都需要验证用户名和密码,如telnet远程登录服务器。

用户输入用户名和密码后,服务器程序会首先验证用户信息的合法性。

由于用户信息的验证频率很高,系统有必要有效地组织这些用户信息,从而快速查找和验证用户。

另外,系统也会经常会添加新用户、删除老用户和更新用户密码等操作,因此,系统必须采用动态结构,在添加、删除或更新后,依然能保证验证过程的快速。

请采用相应的数据结构模拟用户登录系统,其功能要求包括用户登录、用户密码更新、用户添加和用户删除等。

【基本要求】
1.要求自己编程实现二叉树结构及其相关功能,以存储用户信息,不允许使用标准模板类
的二叉树结构和函数。

同时要求根据二叉树的变化情况,进行相应的平衡操作,即A VL 平衡树操作,四种平衡操作都必须考虑。

测试时,各种情况都需要测试,并附上测试截图;
2.要求采用类的设计思路,不允许出现类以外的函数定义,但允许友元函数。

主函数中只
能出现类的成员函数的调用,不允许出现对其它函数的调用。

3.要求采用多文件方式:.h文件存储类的声明,.cpp文件存储类的实现,主函数main存
储在另外一个单独的cpp文件中。

如果采用类模板,则类的声明和实现都放在.h文件中。

4.要求源程序中有相应注释;
5.不强制要求采用类模板,也不要求采用可视化窗口;
6.要求测试例子要比较详尽,各种极限情况也要考虑到,测试的输出信息要详细易懂,表
明各个功能的执行正确;
7.要求采用Visual C++ 6.0及以上版本进行调试;
【实现提示】
1.用户信息(即用户名和密码)可以存储在文件中,当程序启动时,从文件中读取所有的用
户信息,并建立合适的查找二叉树;
2.验证过程时,需要根据登录的用户名,检索整个二叉树,找到匹配的用户名,进行验证;
更新用户密码时,也需要检索二叉树,找到匹配项后进行更新,同时更新文件中存储的用户密码。

3.添加用户时,不仅需要在文件中添加,也需要在二叉树中添加相应的节点;删除用户时,
也是如此;
【运行结果要求】要求能够实现用户登录验证、添加用户、删除用户和更新用户密码功能,实验报告要求有详细的功能测试截图。

【考核要求】要求程序能正常运行,全面完成题目要求。

【题目难度】难,成绩等级高
二、 优先级作业调度系统的模拟
【问题描述】Windows、Linux等操作系统都支持同时运行多个作业,但作业的执行顺序却因调度算法的不同而不同。

通常,操作系统都采用优先级作业调度,即操作系统根据作业的长短来设置优先级大小,优先级高的作业先执行,优先级低的作业后执行。

作业调度的详细情况如下描述:
一个作业J i的长度为t i =(s i,e i),s i为作业运行的开始时间(进入时间),e i为作业运行的结束时间(离开时间),t i则为完成作业J i所需要的执行时间(单位:秒)。

作业调度的基本任务是从作业队列中选取一个来执行,如果没有作业则执行空操作操作。

而优先级作业调度,是指每次选取优先级最高的作业来调度,优先级可以用优先数(每个作业一个优先数p i)来表示,优先数越小,优先级越高。

作业J i进入系统时,即s i时刻,系统给该作业指定其初始优先数p i = t i,从而使越短的作业优先级越高。

该优先数在作业等待调度执行的过程中会不断减小,调整公式为:p i = p i - w i,其中w i为作业J i的等待时间:w i = 当前时间-s i。

一旦作业被调度,该作业就一直执行,不能被抢占,只有当前执行的作业完成时,才产生下一轮调度。

所以需要在每次调度前动态调整各作业的优先数。

在每次调度的时候,如果出现相同优先级的作业,则按照先进先出(FIFO: First In First Out)的原则进行调度。

【基本要求】
1.要求自己编程实现堆结构及其相关功能,从而实现优先级队列,不允许使用标准模板类
的堆函数和优先级队列;测试时,各种情况都需要测试,并附上测试截图;
2.要求采用类的设计思路,不允许出现类以外的函数定义,但允许友元函数。

主函数中只
能出现类的成员函数的调用,不允许出现对其它函数的调用。

3.要求采用多文件方式:.h文件存储类的声明,.cpp文件存储类的实现,主函数main存
储在另外一个单独的cpp文件中。

如果采用类模板,则类的声明和实现都放在.h文件中。

4.要求源程序中有相应注释;
5.不强制要求采用类模板,也不要求采用可视化窗口;
6.要求测试例子要比较详尽,各种极限情况也要考虑到,测试的输出信息要详细易懂,表
明各个功能的执行正确,包括何时作业进入,何时调度哪个作业,何时离开,每个作业等待多长时间,优先数的动态变化情况等;
7.要求采用Visual C++ 6.0及以上版本进行调试;
【实现提示】
1.优先级队列可以采用最小堆来实现;
2.作业长度,即完成时间,可以用随机的方式产生,并由此设定各个作业的初始优先级;
3.可以在一轮调度的间隙随机地插入一定数量的作业,保证队列不会长时间空闲,也不会
太长。

4.优先级队列要求完成主要的功能,包括作业的插入、最小优先级作业的提取和删除、各
个作业优先级的修改等;
5.作业的执行过程,可以调用sleep函数来模拟;
【考核要求】要求程序能正常运行,全面完成题目要求,实现各项主要功能。

实验报告要求有详细的功能测试截图。

【题目难度】次难,成绩等级次高。

相关文档
最新文档