数据结构程序设计题目共29题

合集下载

国开作业《数据结构(本)-形考作业》 (29)

国开作业《数据结构(本)-形考作业》 (29)

题目:一个顺序栈一旦被声明,其占用空间的大小()。

选项A:动态变化选项B:已固定选项C:可以改变选项D:不能固定答案:已固定题目:链栈和顺序栈相比,有一个比较明显的缺点,即()。

选项A:不会出现栈空的情况选项B:通常不会出现栈满的情况选项C:删除操作更加方便选项D:插入操作更加方便答案:通常不会出现栈满的情况题目:用单链表表示的链式队列的队头在链表的()位置。

选项A:链尾选项B:链中选项C:任意位置选项D:链头答案:链头题目:在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个()结构。

选项A:线性表选项B:堆栈选项C:队列选项D:数组答案:队列题目:循环队列A[m] 存放其元素,用front和rear分别表示队头及队尾,则循环队列满的条件是()。

选项A:(rear=front选项B:(rear =front+1选项C:(rear+1)%m-1=front选项D:(rear+1)%m=front答案:(rear+1)%m=front题目:在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行()。

选项A:p-next=top-next; top-next=p;选项B:p-next=top; top=p;选项C:top-next=p;选项D:p-next=top-next; top=top-next;答案:p-next=top; top=p;题目:在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删结点的值,则执行()。

选项A:x=top;top=top-next;选项B:x=top-data;选项C:top=top-next; x=top-data;选项D:x=top-data; top=top-next;答案:x=top-data; top=top-next;题目:在一个链队中,设front和rear分别为队首和队尾指针,则插入p所指结点时,应执行()。

数据结构习题及答案

数据结构习题及答案

数据结构习题习题一一、选择题1、数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的(B)和运算的学科。

A.结构B.关系C.运算D.算法2、在数据结构中,从逻辑上可以把数据结构分成(C)。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.逻辑结构和存储结构3、线性表的逻辑顺序和存储顺序总是一致的,这种说法(B)。

A.正确B.不正确C.无法确定D.以上答案都不对4、算法分析的目的是(C)。

A.找出算法的合理性B.研究算法的输人与输出关系C.分析算法的有效性以求改进D.分析算法的易懂性二、填空题1、数据是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,数据是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。

例如,数学中所用到的整数和实数,文本编辑所用到的字符串等。

2、数据元素是数据的基本单位,有些情况下也称为元素、结点、顶点、记录等。

3、数据项是数据不可分割的最小单元,是具有独立含义的最小标识单位。

例如构成一个数据元素的字段、域、属性等都可称之为_数据项。

4、简而言之,数据结构是数据之间的相互关系,即数据的组织形式。

5、数据的逻辑结构是指数据之间的逻辑关系。

逻辑结构是从逻辑关系上描述数据,它与具体存储无关,是独立于计算机的。

因此逻辑结构可以看作是从具体问题抽象出来的数学模型。

6、数据的存储结构指数据元素及其关系在计算机存储器内的表示。

存储结构是逻辑结构在计算机里的实现,也称之为映像。

7、数据的运算是指对数据施加的操作。

它定义在数据的逻辑结构之上,每种逻辑结构都有一个数据的运算。

常用的有:查找、排序、插人、删除、更新等操作。

8、数据逻辑结构可以分为四种基本的类型,集合结构中的元素除了仅仅只是同属于一个集合_,不存在什么关系。

9、数据逻辑结构的四种基本类型中,线性结构_中的元素是一种一对一的关系,这种结构的特征是:若结构是非空集,则有且只有一个开始结点和一个终端结点,并且所有结点最多只能有一个直接前驱和一个直接后继。

数据结构题集及答案

数据结构题集及答案

判断题1.数据的逻辑结构与数据元素本身的内容和形式无关。

(√)2.一个数据结构是由一个逻辑结构和这个逻辑结构上的一个基本运算集构成的整体。

(√)3.数据元素是数据的最小单位。

(√)4.数据的逻辑结构和数据的存储结构是相同的。

(×)5.程序和算法原则上是没有区别的,所以在讨论数据结构时可以通用。

(×)6.从逻辑关系上讲,数据结构主要分为线性结构和非线性结构。

(√)7.数据的存储结构是数据的逻辑结构的存储映像。

(×)8.数据的物理结构是指数据在计算机内实际的存储形式。

(√)9.数据的逻辑结构是依赖于计算机的。

(×)10.算法是对解题方法和的描述步骤。

(√)填空题:1.数据有逻辑结构和存储结构两种结构。

2.数据逻辑结构除了集合以外,还包括线性结构、树形结构和图形结构。

3.数据结构按逻辑结构可分为两大类,它们是线性结构和非线性结构。

4.树形结构和图形结构合称为非线性结构。

5.在树形结构中,除了树根结点以外,其余每个结点只有 1 个前驱结点。

6.在图形结构中,每个结点的前驱结点数和后继结点数可以任意多个。

7.数据的存储结构又叫物理结构。

8.数据的存储结构形式包括顺序存储、链式存储、索引存储和散列存储。

9.线性结构中的元素之间存在一对一的关系。

10.树形结构中的元素之间存在一对多的关系。

11.图形结构的元素之间存在多对多的关系。

12.数据结构主要研究数据的逻辑结构、存储结构和算法(或运算)3个方面的内容。

13.数据结构被定义为(D,R),其中D是数据的有限集合,R是D上的关系的有限集合。

14.算法是一个有穷指令的集合。

15.算法效率的度量可以分为事先估算和事后统计法。

16.一个算法的时间复杂性是算法输入规模的函数。

17.算法的空间复杂度是指该算法所耗费的存储空间,它是该算法求解问题规模n的函数。

18.若一个算法中的语句频度之和为T(n)=6n+3nlog2n,则算法的时间复杂度为O(nlog2n )。

数据结构考试试题及答案

数据结构考试试题及答案

数据结构考试试题及答案数据结构考试试题及答案数据结构是计算机科学中非常重要的一门课程,它涉及到了计算机程序设计中的数据组织、存储和管理等方面。

在学习数据结构的过程中,掌握基本的数据结构类型、操作和算法是非常重要的。

为了帮助大家更好地掌握数据结构,下面将提供一些常见的数据结构考试试题及答案。

一、选择题1. 下面哪个不是线性数据结构?A. 数组B. 链表C. 栈D. 队列答案:D. 队列2. 下面哪个数据结构可以实现先进先出(FIFO)的操作?A. 栈B. 队列C. 链表D. 树答案:B. 队列3. 下面哪个数据结构可以实现后进先出(LIFO)的操作?A. 栈B. 队列C. 链表D. 树答案:A. 栈4. 下面哪个数据结构可以实现快速查找和插入操作?A. 数组B. 链表C. 栈D. 队列答案:A. 数组5. 下面哪个数据结构可以实现快速查找和删除操作?A. 数组B. 链表C. 栈D. 队列答案:B. 链表二、填空题1. 请写出数组的插入操作的时间复杂度。

答案:O(n)2. 请写出链表的删除操作的时间复杂度。

答案:O(1)3. 请写出栈的出栈操作的时间复杂度。

答案:O(1)4. 请写出队列的入队操作的时间复杂度。

答案:O(1)5. 请写出二叉搜索树的查找操作的时间复杂度。

答案:O(log n)三、简答题1. 什么是数据结构?答案:数据结构是计算机存储、组织数据的方式,它定义了数据的逻辑结构和存储结构,以及对数据进行操作的算法。

2. 请解释什么是时间复杂度和空间复杂度。

答案:时间复杂度是衡量算法执行时间的度量,它表示算法执行所需的时间与问题规模之间的关系。

空间复杂度是衡量算法所需的存储空间的度量,它表示算法所需的存储空间与问题规模之间的关系。

3. 请解释什么是递归算法,并给出一个例子。

答案:递归算法是一种自己调用自己的算法。

一个经典的例子是计算斐波那契数列的第n项。

代码如下:```int fibonacci(int n) {if (n <= 1) {return n;}return fibonacci(n-1) + fibonacci(n-2);}```以上就是一些常见的数据结构考试试题及答案。

数据结构题集

数据结构题集

数据结构题集正确获得1.00分中的1.00分标记题⽬题⼲中缀表达式:(a+b)*d+e/(f+a*d)+c的后缀表达式为:ab+d*efad+/*+c+ ( )选择⼀项:对错反馈正确的答案是“错”。

正确此次提交得分:1.00/1.00。

题⽬2正确获得1.00分中的1.00分标记题⽬题⼲若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进⾏,但不允许连续三次进⾏退栈操作,则不可能得到的出栈序列是()选择⼀项:a. b,c,a,e,f,db. a,f,e,d,c,bc. d,c,e,b,f,ad. c,b,d,a,e,fcorrect feedback正确答案是:a,f,e,d,c,b正确此次提交得分:1.00/1.00。

题⽬3正确获得1.00分中的1.00分假设栈初始为空,将中缀表达式a/b+(c*d-e*f)/g转换为等价的后缀表达式的过程中,当扫描到f时,栈中的元素依次是()。

选择⼀项:a. +(*—b. +(—*c. /+—*d. /+(*—*反馈correct feedback正确答案是:+(—*正确此次提交得分:1.00/1.00。

题⽬4正确获得1.00分中的1.00分标记题⽬题⼲⼀个栈的⼊栈序列为1,2,3,…,n,其出栈序列是p1,p2,p3,…,pn。

如果p2=3,则p3可能取值的个数是( )。

选择⼀项:a. ⽆法确定b. n-3c. n-2d. n-1反馈correct feedback正确答案是:n-1正确此次提交得分:1.00/1.00。

题⽬5正确获得1.00分中的1.00分经过下列栈运算后,StackEmpty(S)的值是______。

InitStack(S);Push(S,a);Push(S,b);Pop(S,x);Pop(S,y)选择⼀项:a. ab. 1c. bd. 0反馈correct feedback正确答案是:1正确此次提交得分:1.00/1.00。

题⽬6正确获得1.00分中的1.00分标记题⽬题⼲设n个元素进栈序列是p1,p2,p3,…,pn,其输出序列是1,2,3,…,n,若p3=1,则p1的值______。

数据结构算法设计题

数据结构算法设计题

一、算法设计题1. 设二叉树bt采用二叉链表结构存储。

试设计一个算法输出二叉树中所有非叶子结点,并求出非叶子结点的个数。

【答案】int count=0;void algo2(BTNode *bt){if (bt){if(bt->lchild || bt->rchild){printf(bt->data);count++;}algo2(bt->lchild);algo2(bt->rchild);}}2. 阅读下列函数arrange()int arrange(int a[],int 1,int h,int x){//1和h分别为数据区的下界和上界int i,j,t;i=1;j=h;while(i<j){while(i<j && a[j]>=x)j--;while(i<j && a[j]>=x)i++;if(i<j){ t=a[j];a[j]=a[i];a[i]=t;}}if(a[i]<x) return i;else return i-1;}(1)写出该函数的功能;(2)写一个调用上述函数实现下列功能的算法:对一整型数组b[n]中的元素进行重新排列,将所有负数均调整到数组的低下标端,将所有正数均调整到数组的高下标端,若有零值,则置于两者之间,并返回数组中零元素的个数。

【答案】(1)该函数的功能是:调整整数数组a[]中的元素并返回分界值i,使所有<x的元素均落在a[1..i]上,使所有≥x的元素均落在a[i+1..h]上。

(2)int f(int b[],int n) 或 int f(int b[],int n){ {int p,q; int p,q;p=arrange(b,0,n-1,0); p=arrange(b,0,n-1,1);q= arrange(b,p+1,n-1,1); q= arrange(b,0,p,0);return q-p; return p-q;} }3. 假设线性表以带表头结点的循环单链表表示。

数据结构习题集

数据结构习题集

数据结构习题集第一章绪论1.1数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的关系和运算等的学科。

1.2 算法分析的目的是分析算法的效率以求该进,算法分析的两个主要方面是空间复杂度和时间复杂度。

1.3 计算机算法指的是解决问题的有限运算序列,它必须具备输入、输出和确定性、有穷性和可行性等5个重要特性。

第二章线性表2.32 下面关于线性表的叙述中,错误的是(B)A. 线性表采用顺序存储必须占用一片连续的存储单元B. 线性表采用顺序存储便于进行插入和删除操作C. 线性表采用链式存储不必占用一片连续的存储单元D. 线性表采用链式存储便于进行插入和删除操作第三章栈与队列一、选择题3.1 栈的特点是先进后出,队列的特点是先进先出。

3.4 判定一个栈ST(最多元素MaxSize)为空的条件是ST->top==-1。

3.8 一个队列的入队序列是1,2,3,4,则出队列的输出序列是1,2,3,4。

3.16一个队列的入队序列是1,2,3,4,则队列的输出序列是1,2,3,4。

3.18 若进栈序列为 1,2,3,4,,进栈过程中可以出栈,则以下不可能的出栈序列是3,1,4,23.1 栈和队列的区别仅在于____。

3.2 通常元素进栈的操作是____。

3.3通常元素退栈的操作是____。

3.4一个栈的输入序列是12345,则栈的输出序列43512是____。

3.5一个栈的输入序列是12345,则栈的输出序列12345是____。

第四章串4.1串是一种特殊的线形表,其特殊性体现在___B_A. 可以顺序存储B. 数据元素是一个字符C. 可以链接存储D. 数据元素可以是多个字符4.2 串的两种最基本的存储方式是顺序和链式。

4.3两个串相等的充分必要条件是:长度相等且对应位置上的字符相等。

4.4 空串是____,其长度等于____.4.5 串的三种机内表示方法是________、________、和___________。

数据结构与C语言程序设计试题及答案

数据结构与C语言程序设计试题及答案
5.已知模式匹配的KMP算法中模式串t=’adabbadada’,其next函数的值为0112112343。
6.在置换-选择排序中,假设工作区的容量为w,若不计输入、输出的时间,则对n个记录的文件而言,生成所有初始归并段所需时间为O(n log w)。
三.简答题(6’5)
1.有n个不同的英文单词,它们的长度相等,均为m,若n>>50,m<5,试问采用什么排序方法时间复杂度最佳?为什么?
采用基数排序方法最佳。
因单词长度相等,而只有26个字母组成,符合基数排序的条件。
因m<<n,故时间复杂性由O(m(n+rm))变成O(n)。
2.对于一个栈,给出输入序列A,B,C,试给出全部可能的输出序列。若输入序列的长度为n,则可能的输出序列有多少?
ABC,ACB,BAC,BCA,CBA
C2nn/(n+1)
()10、任何有向图的顶点都可以按拓扑序排序。
二.填空题(2’6)
1.假设用于通信的电文由8个字母组成,其频率分别为0.07,0.19,0.02,0.06, 0.32,0.03,0.21,0.10,为这8个字母设计哈夫曼编码,其中编码长度最大的字母的编码是5位。
2.已知二叉树按中序遍历所得到的结点序列为DCBGEAHFIJK,按后序遍历所得到的结点序列为DCEGBFHKJIA,按先序遍历所得到的结点序列为ABCDGEIHFJK。
O(n log n)
四.程序设计题(38’)
1.假设有两个集合A和B,均以元素值递增有序排列的带头结点的单链表作为存储结构。请编写算法求C=AB,要求C按元素值递增有序排列,并要求利用原表(即表A和表B)的结点空间存放表C。(12’)
void Join(LinkList &la , LinkList &lb , LinkList &lc)

数据结构考试题及答案

数据结构考试题及答案

数据结构考试题及答案一、选择题1. 下列哪种数据结构是一种线性结构?A. 树B. 栈C. 图D. 队列答案:B. 栈2. 以下哪种不是二叉树的遍历方式?A. 先序遍历B. 层序遍历C. 后序遍历D. 中序遍历答案:B. 层序遍历3. 在队列中,哪种操作不是O(1)时间复杂度的?A. 入队B. 出队C. 判空D. 获取队首元素答案:D. 获取队首元素二、填空题4. 二叉查找树的中序遍历结果为_______。

答案:升序排列的序列5. 栈的特点是_______进,_______出。

答案:后进,先出6. 图中两点间存在边则称它们为_______。

答案:邻接点三、简答题7. 请简要介绍一下栈和队列的应用场景及区别。

答:栈和队列都是常用的数据结构,栈适合用于实现括号匹配、表达式求值等场景,而队列常用于实现广度优先搜索、缓存队列等。

栈是一种后进先出的数据结构,而队列是一种先进先出的数据结构。

8. 什么是哈希表?它的优缺点分别是什么?答:哈希表是一种通过哈希函数将关键字映射到数组位置的数据结构。

其优点是能够快速查找、插入、删除元素,时间复杂度接近O(1);缺点是可能发生哈希冲突,导致性能下降。

四、综合题9. 给定以下无向图的邻接矩阵表示,请写出图的深度优先搜索(DFS)遍历路径。

```0 1 2 30 0 1 0 11 1 0 1 12 0 1 0 13 1 1 1 0```答:起始节点为0,路径:0 - 1 - 3 - 210. 写出以下树的层序遍历结果。

```1/ \2 3/ \ / \4 5 6 7```答:1 - 2 - 3 - 4 - 5 - 6 - 7以上就是数据结构考试题及答案,希望对您有所帮助。

如果有不清楚的地方,欢迎随时向老师询问。

祝您考试顺利!。

数据结构练习题

数据结构练习题

一、填空题
1.线性表、栈和队列都是 线性 结构,可以在线性表的 任意 位置插入和删除元素;对 于栈只能在 栈顶 插入和删除元素;对于队列只能在 队尾 插入和 队头 删除元素。 2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为 栈顶 。不允许插入和删除 运算的一端称为 栈底 。 3. 队列 是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性 表。 4. 在一个循环队列中,队首指针指向队首元素的 当前 位置。 5. 在具有n个单元的循环队列中,队满时共有 n-1 个元素。 6. 向栈中压入元素的操作是先 插入元素 ,后 移动指针 。 7. 从循环队列中删除一个元素时,其操作是 先 读取元素 ,后 移动指针 。
数据结构
武汉大学测绘学院虞晖
1. 假设有二维数组A6×8,每个元素用相邻的6个字节存储,存储器按字节编址。已知A 的起始存储位置(基地址)为1000,则数组A的体积(存储量)为 288 ;末尾元素A57 的第一个字节地址为 1282 ;若按行存储时,元素A14的第一个字节地址为 1072 ;若按 列存储时,元素A47的第一个字节地址为 1276 。 2. 设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序 顺序存储,则元素a[32,58]的存储地址为 8950 。 3. 三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分 别表示该元素的 行下标 、 列下标 和 元素值 。
数据结构
武 汉 大 学 测 绘 学 院 虞晖
单项选择题
( C)1.数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续 的,称之为:
(A)存储结构 (B)逻辑结构 (C)顺序存储结构 (D)链式存储结构 ( B)2. 一个表第一个元素的存储地址是100,每个元素的长度为2,则第5个元 素的地址是 (A)110 (B)108 (C)100 (D)120 ( A)3. 在n个结点的顺序表中,算法的时间复杂度是O(1)的操作是:

数据结构试题汇编带答案

数据结构试题汇编带答案

《数据结构》习题汇编一、单项选择题1. 在数据结构中,从逻辑上可以把数据结构分成()。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2. 数据结构在计算机内存中的表示是指()。

A.数据的存储结构B.数据结构C.数据的逻辑结构D.数据元素之间的关系3. 在数据结构中,与所使用的计算机无关的是数据的()结构。

A.逻辑B.存储C.逻辑和存储D.物理4.计算机算法指的是(①),它必须具备输入、输出和(②)等5个特性。

①A.计算方法 B.排序方法C.解决问题的有限运算序列D.调度方法②A.可行性、可移植性和可扩充性 B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和安全性5.在一个长度为n的顺序表中向第i个元素(l W i W n+1)位置插入一个新元素时,需要从后向前依次后移()个元素。

A. n-iB. n-i+1C. n-i-1D. i6.在一个长度为n的顺序表中删除第i个元素(i W i W n)时,需要从前向后依次前移()个元素。

A. n-iB. n-i+1C. n-i-1D. i7.在一个长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度为()。

A. O(n)B. O(1)C. O(n2)D. O(log2n)8.在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为()。

A. O(n)B. O(n/2)C. 0(1)D. O(n2)9.不带头结点的单链表first为空的判定条件是:()A. first == NULL;B. first->next == NULL;C. first->next == first;D. first != NULL;10.带头结点的单链表first为空的判定条件是:()A. first == NULL;B. first->next == NULL;C. first->next == first;D. first != NULL;11.设单链表中结点的结构为(data, next)。

数据结构网试题

数据结构网试题

数据结构试题第一章绪论一、选择题:1、在数据结构中,从逻辑上可以把数据结构分成()。

A、动态结构和静态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构2、算法分析的两个主要方面是()。

A、空间复杂性和时间复杂性B、正确性和简明性C、可读性和文档性D、数据复杂性和程序复杂性3、以下与数据的存储结构无关的术语是()。

A、循环队列B、链表C、哈希表D、栈4、以下数据结构中,哪一个是线性结构()。

A.广义表B、二叉树C、稀疏矩阵D、串5、在下面的程序段中,对x的赋值语句的频度为()。

FOR i:=1TO n DOFOR j:=1TO n DOx:=x+1;n)A、O(2n)B、O(n)C、O(n2)D、O(log26、以下哪个数据结构不是多型数据类型()。

A、栈B、广义表C、有向图D、字符串7、以下数据结构中,()是非线性数据结构。

A、树B、字符串C、队D、栈8、以下属于逻辑结构的是()。

A、顺序表 B.哈希表C、有序表D、单链表9、下列程序段的时间复杂度为()。

s=0;for(i=1;i<n;i++)for(j=1;j<n;j++)s+=ij;A、O(1)B、O(n)C、O(2n)D、O(n2)10、数据结构是()。

A、一种数据类型B、相互之间存在一种或多种特定关系的数据元素的集合C、一组性质相同的数据元素的集合D、数据的存储结构11、算法分析的目的是()。

A、辨别数据结构的合理性B、评价算法的效率C、研究算法中输入与输出的关系D、鉴别算法的可读性12、下面程序段的时间复杂度为()。

for(int i=0;i<m;i++)for(int j=0;j<n;j++)a[i][j]=ij;A、O(m2)B、O(n2)C、O(mn)D、O(m+n)13、执行下面程序段时,执行S语句的次数为()。

for(int i=1;i<=n;i++)for(int j=1;j<=i;j++)S;A、n2B、n2/2C、n(n+1)D、n(n+1)/214、算法的可读性是指()。

数据结构课程设计题目(最终版)-2012

数据结构课程设计题目(最终版)-2012

数据结构课程设计题目1、医务室模拟。

问题描述:假设只有一位医生,在一段时间内随机地来几位病人;假设病人到达的时间间隔为0~14分钟之间的某个随机值,每个病人所需处理时间为1~9分钟之间的某个随机值。

试用队列结构进行模拟。

实现要求:要求输出医生的总等待时间和病人的平均等待时间。

程序设计思路:计算机模拟事件处理时,程序按模拟环境中的事件出现顺序逐一处理,在本程序中体现为医生逐个为到达病人看病。

当一个病人就诊完毕而下一位还未到达时,时间立即推进为下一位病人服务,中间时间为医生空闲时间。

当一个病人还未结束之前,另有一位病人到达,则这些病人应依次排队,等候就诊。

2、招聘模拟问题描述:某集团公司为发展生产向社会公开招聘m个工种的工作人员,每个工种各有不同的编号(0,1,2,…,m-1)和计划招聘人数,参加招聘的人数有n个(编号为0,1,2,。

,n-1)。

每位应聘者可以申报两个工种,并参加公司组织的考试。

公司将按应聘者的成绩,从高到低的顺序排队录取。

公司的录取原则是:从高分到低分依次对每位应聘者按其第一志愿录取;当不能按第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其志愿考虑录取。

程序为每个工种保留一个录取者的有序队列。

录取处理循环直至招聘额满,或已对全部应聘者都做了录用处理。

实现要求:要求程序输出每个工种录用者的信息(编号、成绩),以及落选者的信息(编号、成绩)。

3、组织机构问题问题描述:以青岛理工大学为例,实现对我校组织结构的管理。

要求把我校的组织结构以树型结构存储,实现要求:(1)树中每个结点保存部门名称;(2)假定处级部门(含院系)在树中第二层,科级部门在第三层(即最后一层),软件应该能计算出处级部门有几个,有哪几个?(3)软件可以查询某部门下面的具体编制?4、最少换车次数问题问题描述:设某城市有n个车站,并有m条公交线路连接这些车站。

设这些公交车站都是单向的,这n个车站被顺序编号为0~n-1。

《数据结构》习题集

《数据结构》习题集

第1章绪论一、填空题1. 一个算法具有下列五个重要特性:、、、、。

2.根据数据元素之间的相互关系的不同特性,通常有如下的四种基本结构:、、、。

3. 数据结构是介于、和三者之间的一门核心课程。

4. 通常设计一个“好”的算法应该考虑达到如下的目标、、、。

5. 算法效率的度量同时采用时间复杂度和来度量。

第2章线性表一、填空题1. 一个双向的循环链表,设p->next指向其后继,p->prior指向其前驱。

若要删除指针p所指的结点,需要如下的指令实现:。

2.一个单向链表,设q=p->next 若要删除指针q所指的结点,需要如下的指令实现:。

3. 已知某单向链表中某结点的指针为p,p->next指向其下一个结点。

若希望在p之后插入一个结点q,则可采用如下的指令实现:。

4. 已知某双向循环链表中某结点的指针为p,p->next指向它的后继,p->prior指向它的前驱,p->data为该元素的值,其类型为字符型变量。

试采用C语言描述该双向链表的存储结构:若希望删除该结点,可采用如下的C语言程序段实现:5. 在一个长度为n的顺序表中删除第i个元素(0≤i≤n)时,需向前移动个元素。

6. 在一个具有n个结点的有序单链表中插入一个新的结点使得该链表仍然有序,其算法的时间复杂度为。

二、选择题1. 设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为:。

(A)p->next=p->next->next; (B)p=p->next;(C)p=p->next->next; (D)p->next=p;2.在长度为n的顺序表的第i(0≤i≤n)个位置上插入一个元素,元素的移动次数为( )。

A、 n-i+1B、n-iC、 iD、 i-1三、简答题1. 已知双向链表中某结点的指针为p,现希望在该结点之后插入结点q,请用图示和语言的形式描述插入该结点的过程。

数据结构习题集(C语言版严蔚敏)第一二三章

数据结构习题集(C语言版严蔚敏)第一二三章

第1章 绪论1.1 简述下列术语:数据,数据元素、数据对象、数据结构、存储结构、数据类型和抽象数据类型。

1。

2 试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。

1。

3 设有数据结构(D ,R),其中{}4,3,2,1d d d d D =,{}r R =,()()(){}4,3,3,2,2,1d d d d d d r =试按图论中图的画法惯例画出其逻辑结构图.1.4 试仿照三元组的抽象数据类型分别写出抽象数据类型复数和有理数的定义(有理数是其分子、分母均为自然数且分母不为零的分数)。

1.5 试画出与下列程序段等价的框图.(1) product=1; i=1; while (i 〈=n){ product *= i; i++; } (2) i=0; do { i++;} while((i !=n) && (a[i ]!=x)); (3) switch {case x 〈y : z=y —x ; break; case x=y: z=abs(x *y); break ; default: z=(x —y )/abs(x)*abs(y ); }1。

6 在程序设计中,常用下列三种不同的出错处理方式:(1) 用exit 语句终止执行并报告错误;(2) 以函数的返回值区别正确返回或错误返回;(3) 设置一个整型变量的函数参数以区别正确返回或某种错误返回. 试讨论这三种方法各自的优缺点。

1.7 在程序设计中,可采用下列三种方法实现输出和输入:(1) 通过scanf 和printf 语句; (2) 通过函数的参数显式传递; (3) 通过全局变量隐式传递。

试讨论这三种方法的优缺点.1。

8 设n 为正整数.试确定下列各程序段中前置以记号@的语句的频度:(1) i=1; k=0;while(i<=n-1){@ k += 10*i;i++;}(2) i=1; k=0;do {@ k += 10*i;i++;} while(i<=n-1);(3) i=1; k=0;while (i〈=n-1) {i++;@ k += 10*i;}(4) k=0;for(i=1; i〈=n; i++) {for(j=i; j<=n; j++)@ k++;}(5) for(i=1; i〈=n; i++) {for(j=1; j<=i; j++) {for(k=1; k〈=j; k++)@ x += delta;}(6) i=1; j=0;while(i+j〈=n) {@ if(i〉j) j++;else i++;}(7) x=n; y=0; // n是不小于1的常数while(x>=(y+1)*(y+1)) {@ y++;}(8) x=91; y=100;while(y〉0) {@ if(x>100) { x -= 10; y——; }else x++;}1。

数据结构习题集及答案

数据结构习题集及答案

第一章一、填空题1 数据元素是数据的基本单位,..数据项.......是具有独立含义的最小标识单位。

3 数据之间的关系(逻辑结构)有四种集合、线性结构、树形结构、网状结构或图状结构,可分为....................... ....、...................两大类。

4 数据的存储结构包括..顺序存储结构.....................、..链式存储结构..........................二、问答题1.什么是数据结构?什么是数据类型?答:数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等的学科。

数据类型是一个值的集合和定义在这个值集上的一组操作的总称。

2.叙述算法的定义与特性。

答:算法是对待定问题求解步骤的一种描述,他是指令的有限序列,其中每一条指令表示一个或多个操作。

一个算法具有以下5个重要特性:1)、有穷性 2)、确定性3)、可行性 4)、输入 5)、输出3. 叙述算法的时间复杂度。

答:算法中基本操作重复执行的次数是问题规模n的某个函数f(n),算法的时量度,记作T(n)=O(f(n))他表示随着问题规模n的增大,算法执行时间增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。

三、判断题(在各题后填写“√”或“×”)1. 线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。

(×)2.下列几种数量级从小到大的排列顺序为:O(1) 、O(logn)、O(n) 、O(nlogn) 、O(n2) 、O(n3 ) 、O(2n)。

(√)四、1.计算机执行下面的语句时,语句s的执行频度(重复执行的次数)为 _______ 。

FOR(i=l;i<n-l;i++)FOR(j=n;j>=i;j--)s;2.有下列运行时间函数:(1)T1 (n)=1000; (2)T2(n)=n2+1000n; (3)T3(n)=3n3+100n2+n+1;分别写出相应的大O表示的运算时间。

程序设计与数据结构练习题 附答案

程序设计与数据结构练习题 附答案

一、单项选择题1.有下列程序段落:int i,a[5];for(i=0;i<5;i++)scanf(“%d”,&a[i]);若要使数组元素的值分别为1,2,3,4,5,应从键盘输入(B)。

A.1,2,3,4,5↙B.1 2 3 4 5↙C.12345↙D.1;2;3;4;5↙2.数组名作为函数参数进行传递时,形参获得的是(D)。

A.该数组第一个元素的值B.该数组所有元素的值C.该数组所有元素的地址D.该数组的首地址3.设有如下宏定义:#define A 3+2#define B A*A则表达式“B*B”的值为( A )。

A.23B.5 C.25D.6254.在下列说明中,结构类型变量x 所占用内存字节数为(D)。

struct exp{ int i;float j;double k;}x;A.8个B.7个C.14个D.随计算机而定5.设有定义:int k=3,*p=&k; 则表达式*p的值是(D)。

A.1 B.0 C.2 D.36.下列程序的输出结果为(A)。

main(){ int i=3,b;b=(i--)+(i--);printf(“%d”,b);}A.6 B.2 C.3 D.47.当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是(D)。

A.c=b=a B. (a=c)||(b=c) C. a=c=b D. (a=c)&&(b=c)8.下列叙述不正确的是( A )。

A.函数定义可以嵌套B.宏定义可以嵌套C.函数调用可以嵌套D.循环结构可以嵌套9.设char *p=“abcde”,则printf(“%s”, p ) 的输出结果为( D )。

A.c B.cde C.b D.abcde10.p1,p2 为指向浮点的指针变量,下列运算没有意义的是(D)。

A.*p1-*p2 B.p1++ C.*p1+*p2 D.p1+p211.设有int i=010,j=10; 则printf( “%d,%d\n”,++i,j--);的输出是(B)。

数据结构程序设计题目共29题

数据结构程序设计题目共29题

目录题目1:设计一元多项式简单计算 (1)题目2:链表应用1 (1)题目3:链表应用2 (1)题目4:通讯录 (2)题目5:停车场管理系统................................................ 错误!未定义书签。

题目6:约瑟夫环 (3)题目7:运动会分数统计 (3)题目8:文学研究助手问题 (3)题目9:银行业务模拟与离散事件模拟 (4)题目10:学生信息管理系统任务(用顺序表/链表)....... 错误!未定义书签。

题目11:文章编辑功能 ................................................. 错误!未定义书签。

题目12:实验室管理..................................................... 错误!未定义书签。

题目13:二叉树的基本操作(建立、求二叉树树深度、遍历).. (4)题目14:纸牌游戏任务 (5)题目15:算术表达式求值 (5)题目16:内部排序算法比较 (5)题目17:哈夫曼树的构造和哈夫曼编码/译码 (6)题目18:构造可以使n个城市连接的最小生成树 (7)题目19:交通咨询系统中的最短路径 (7)题目20:集合的交、并、差运算 ................................... 错误!未定义书签。

题目21:长整数四则运算 (7)题目22:机订票系统..................................................... 错误!未定义书签。

题目23:图书管理系统 (8)题目24:哈希表应用 (8)题目25:模拟旅馆管理系统的一个功能——床位的分配与回收 (9)题目26:地图着色问题 (9)题目27:俄罗斯套娃问题 (10)题目28:扫雷 (11)题目29:用C语言设计一个日历系统 (11)题目1:设计一元多项式计算【任务要求】(1)能够按照指数降序排列建立并输出多项式;(2)能够完成两个多项式的相加、相减,并将结果输入;实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。

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

目录题目1:设计一元多项式简单计算 (1)题目2:链表应用1 (1)题目3:链表应用2 (1)题目4:通讯录 (2)题目5:停车场管理系统................................................ 错误!未定义书签。

题目6:约瑟夫环 (3)题目7:运动会分数统计 (3)题目8:文学研究助手问题 (3)题目9:银行业务模拟与离散事件模拟 (4)题目10:学生信息管理系统任务(用顺序表/链表)....... 错误!未定义书签。

题目11:文章编辑功能 ................................................. 错误!未定义书签。

题目12:实验室管理..................................................... 错误!未定义书签。

题目13:二叉树的基本操作(建立、求二叉树树深度、遍历).. (4)题目14:纸牌游戏任务 (5)题目15:算术表达式求值 (5)题目16:内部排序算法比较 (5)题目17:哈夫曼树的构造和哈夫曼编码/译码 (6)题目18:构造可以使n个城市连接的最小生成树 (7)题目19:交通咨询系统中的最短路径 (7)题目20:集合的交、并、差运算 ................................... 错误!未定义书签。

题目21:长整数四则运算 (7)题目22:机订票系统..................................................... 错误!未定义书签。

题目23:图书管理系统 (8)题目24:哈希表应用 (8)题目25:模拟旅馆管理系统的一个功能——床位的分配与回收 (9)题目26:地图着色问题 (9)题目27:俄罗斯套娃问题 (10)题目28:扫雷 (11)题目29:用C语言设计一个日历系统 (11)题目1:设计一元多项式计算【任务要求】(1)能够按照指数降序排列建立并输出多项式;(2)能够完成两个多项式的相加、相减,并将结果输入;实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。

要求:在上交资料中请写明:存储结构、多项式相加的基本过程的算法(可以使用程序流程图)、源程序、测试数据和结果、算法的时间复杂度、另外可以提出算法的改进方法;【测试数据】自行选择题目2:链表应用1【任务要求】实现两个链表的合并基本功能要求:(1)建立两个链表A和B,链表元素个数分别为m和n个。

(2)假设元素分别为(x1,x2,…xm),和(y1,y2, …yn)。

把它们合并成一个线形表C,使得:当m>=n时,C=x1,y1,x2,y2,...xn,yn, (x)当n>m时,C=y1,x1,y2,x2,…ym,xm,…,yn输出线性表C(3)用直接插入排序法对C进行升序排序,生成链表D,并输出链表D。

【测试数据】1) A表(30,41,15,12,56,80)B表(23,56,78,23,12,33,79,90,55)2) A表(30,41,15,12,56,80,23,12,34)B表(23,56,78,23,12)题目3:链表应用2【问题描述】已知非空线性链表第一个链结点的指针为list,写出下列各项操作的算法程序。

(1)逆转该线性链表;(2)删除线性链表中从左往右第一个数据为data的链结点;(3)删除从第I个链结点开始的连续k个结点。

【任务要求】设计一组输入数据并编写完整的程序。

调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出的结果。

【提示】1)逆转一个链表是指在不增加新结点的前提下,依次改变链表中结点的连接方向。

2)删除数据结点时,首先判断链表是否为空,若非空,先判断第一个结点是否满足条件,若是则删除;否则从第二个结点开始顺序查找,直到找到为止,然后删除;对任何不满足条件的情况都报告相应提示信息。

3)从第I个结点开始连续删除k个结点时,考虑以下两种情况:当I=1时,从第一个开始删除即可;当I>1时,先找到前一个结点然后再连续删除K个结点。

最后释放各个结点空间。

【测试数据】自行设定题目4:通讯录【问题描述】该设计采用菜单作为应用程序的主要界面,用控制语句来改变程序执行的顺序,控制语句是实现结构化程序设计的基础。

该设计的任务是利用一个简单实用的菜单,通过菜单单项进行选择,实现和完成通讯录管理中常用的几个不同的功能。

通讯者所包含信息请自行设定【任务要求】菜单内容:(0)通讯录链表的建立(1)通讯者结点的插入(2)通讯者结点的查询(3)通讯者结点的删除(4)通讯录链表的输出(5)退出管理系统设计要求:使用0~5来选择菜单项,其他输入则不起作用。

功能函数设计5个不同功能的算法实现编程题,目的是练习利用链表结构来解决实际应用问题的能力,进一步理解和熟悉线形表的链式存储结构。

【测试数据】自行设定,注意边界等特殊情况。

题目6:约瑟夫环【问题描述】编号是1,2,……,n的n个人按照顺时针方向围坐一圈,每个人只有一个密码(正整数)。

一开始任选一个正整数作为报数上限值m,从第一个仍开始顺时针方向自1开始顺序报数,报到m时停止报数。

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

设计一个程序来求出出列顺序。

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

输入数据:输入m的初值,n ,输入每个人的密码,建立单循环链表。

输出形式:建立一个输出函数,将正确的输出序列【测试数据】m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4。

题目7:运动会分数统计【问题描述】参加运动会有n个学校,学校编号为1……n。

比赛分成m个男子项目,和w个女子项目。

项目编号为男子1……m,女子m+1……m+w。

不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。

(m<=20,n<=20)【任务要求】功能要求:1).可以输入各个项目的前三名或前五名的成绩;2).能统计各学校总分,3).可以按学校编号、学校总分、男女团体总分排序输出;4).可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。

规定:输入数据形式和范围:20以内的整数(如果做得更好可以输入学校的名称,运动项目的名称)输出形式:有中文提示,各学校分数为整型界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。

存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。

(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;【测试数据】1、全部合法数据;2、整体非法数据;3、局部非法数据。

进行程序测试,以保证程序的稳定。

测试数据及测试结果请在上交的资料中写明;题目9:银行业务模拟与离散事件模拟【问题描述】假设某银行有4个窗口对外接待客户,从早晨银行开门(开门9:00am,关门5:00pm)起不断有客户进入银行。

由于每个窗口在某个时刻只能接待一个客户,因此在客户人数众多时需要在每个窗口前顺次排队,对于刚进入银行的客户(建议:客户进入时间使用随机函数产生),如果某个窗口的业务员正空闲,则可上前办理业务;反之,若4个窗口均有窗户所占,他便会排在人数最少的队伍后面。

【任务要求】编制一个程序以模拟银行的这种业务活动并计算一天中客户在银行逗留的平均时间。

建议有如下设置:客户到达时间随机产生,一天客户的人数设定为100人。

银行业务员处理时间随机产生,平均处理时间10分钟。

将一天的数据(包括业务员和客户)以文件方式输出。

【测试数据】由随机数产生器生成题目13:二叉树的基本操作(建立、求二叉树树深度、遍历)【任务要求】要求输入二树的各个结点,求二叉树的树深度,并能够输出指定遍历方式(层序、先序、中序、后序)的遍历序列;分别建立;建立二叉树存储结构的的输入函数、求二叉树的树深度的函数、遍历序列的函数层序遍历(用队列的方法实现)中序遍历(用递归和非递归的方法一起都实现)先序遍历(用递归和非递归的方法一起都实现)后序遍历(用递归和非递归的方法一起都实现)题目14:纸牌游戏任务【问题描述】编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?【任务要求】采用合适的数据结构输出最后正面向上的牌,并将以2…52奇数翻牌的过程显示出来题目15:算术表达式求值【问题描述】在计算机中,算术表达式由常量、变量、运算符和括号组成。

由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。

因而在程序设计时,借助栈实现。

【任务要求】算法输入:一个算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。

为简化,规定操作数只能为正整数,操作符为+、-*、/,用#表示结束。

算法输出:表达式运算结果。

算法要点:设置运算符栈和运算数栈辅助分析算符优先关系。

在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以及相应运算。

题目16:内部排序算法比较【问题描述】编制一个演示内部排序算法比较的程序。

利用随机函数产生30000个随机整数,利用冒泡排序、直接插入排序、简单选择排序、快速排序、希尔排序、归并排序和堆排序等排序方法进行排序,并统计每一种排序上机所花费的时间。

【任务要求】算法输入:以菜单的形式选择排序方法算法输出:不同情况下关键字参加的比较次数和关键字的移动次数,每一种排序上机所花费的时间。

算法要点:(1)利用随机函数产生30000个随机整数。

(2)利用不同排序方法排序并统计两类次数,列表显示(3)程序以对话方式执行。

题目17:哈夫曼树的构造和哈夫曼编码/译码【问题描述】利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。

但是,这要求在发送端通过一个编码系统对待传数据预先编码,在接收端将传来的数据进行译码(复原)。

对于双工信道(即可以双向传输信息的信道),每端都需要一个完整的编/译码系统。

试为这样的信息收发站写一个哈夫曼码的编/译码系统。

【任务要求】一个完整的系统应具有以下功能:I:初始化(Initialization)。

相关文档
最新文档