电大数据结构程序题
国家开放大学本科末考试数据结构历年试题与参考答案15秋至19秋精选全文完整版

可编辑修改精选全文完整版国家开放大学(中央广播电视大学)2015年秋季学期“开放本科”期末考试数据结构(本)试题2016年1月一、单项选择题(每小题2分,共30分)1.对稀疏矩阵进行压缩存储,可采用三元组表,一个有10行的稀疏矩阵A共有97个零元素,其相应的三元组表共有3个元素。
该矩阵A有( )列。
A.8 C.7B.9 D.10答案:102.子串“acd”在主串“abdcacdefac”中的位置是( )。
A.3 C.7B.5 D.1答案:53.序列12,16,8,4按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列的不可能输出序列是( )。
(进栈、出栈可以交替进行)。
A.16,12,8,4B.4,8,12,16C.8,4,16,12D.16,12,4,8答案:B.4,8,12,164.在一个不带头结点的链队中,假设f和r分别为队头和队尾指针,对该队列进行出队操作,并把结点的值保存在变量e中,其运算为( )。
A.e=f->data;r=r->nextB.e=f->data;r->next=rC.e=f->data;f=f->nextD.e=f一>data;f一>next=f答案:C.e=f->data;f=f->next5.数据的逻辑结构在计算机内存中的表示是( )。
A.给相关变量分配存储单元C.数据的逻辑结构B.数据的存储结构D.算法的具体体现答案:数据的存储结构6.以下说法正确的是( )。
A.线性表的链式存储结构必须占用连续的存储空间B.一种逻辑结构可以有不同的存储结构C.一种逻辑结构只能有唯一的存储结构D.线性表的顺序存储结构不必占用连续的存储空间答案:一种逻辑结构可以有不同的存储结构7.在一个单链表中要删除p所指结点的后继结点,可执行q=p一>next;和( )。
A.p一>next=q->nextB.p=q->nextC.p->next=qD.p->next=q答案:A.p一>next=q->next8.在数据结构和算法中,与所使用的计算机有关的是( )。
国家开放大学(电大)数据结构(本)阶段性学习测验答案

一、单项选择题(每小题3分,共60分)题目1把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()。
A. 物理结构题目2下列说法中,不正确的是()。
C. 数据项可由若干个数据元素构成题目3一个存储结点存储一个()。
C. 数据类型题目4数据结构中,与所使用的计算机无关的是数据的()。
A. 逻辑结构题目5在线性表的顺序结构中,以下说法正确的是()。
B. 逻辑上相邻的元素在物理位置上也相邻题目6对链表, 以下叙述中正确的是()。
D. 不能随机访问任一结点题目7下列的叙述中,不属于算法特性的是()。
B. 可读性题目8算法的时间复杂度与()有关。
A. 算法本身题目9设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为()。
B. n-i+1题目10设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为()。
C. n-i题目11在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句()。
C. p->next=q->next题目12在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。
A. s->next=p->next; p->next=s;题目13非空的单向循环链表的尾结点满足()(设头指针为head,指针p指向尾结点)。
A. p->next==head题目14链表不具有的特点是()。
B. 可随机访问任一元素题目15带头结点的链表为空的判断条件是()(设头指针为head)。
C. head->next==NULL题目16在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。
则原顺序表的长度为()。
C. 20题目17有关线性表的正确说法是()。
B. 除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继题目18向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动()个元素。
电大数据结构程序题

电大数据结构程序题 Last updated on the afternoon of January 3, 20211.以下函数为直接选择排序算法,对a[1],a[2],…a[n]中的记录进行直接选择排序,完成程序中的空格typedefstruct{intkey;……}NODE;voidselsort(NODEa[],intn){inti,j,k;NODEtemp;for(i=1;i<=___(1)_____;i++){k=i;for(j=i+1;j<=___(2)_____;j++)if(a[j].key<a[k].key)__(3)______;if(i!=k){temp=a[i];___(4)_____;____(5)____;答案:(1)n-1(2)n(3)k=j(4)a[i]=a[k](5)a[k]=temp2.以下是用尾插法建立带头结点且有n个结点的单向链表的程序,结点中的数据域从前向后依次为1,2,3,……,n,完成程序中空格部分。
NODE*create(n){NODE*head,*p,*q;inti;p=(NODE*)malloc(sizeof(NODE));head=(1);(2);pnext=NULL;/*建立头结点*/for(i=1;i<=n;i++){p=(3);pdata=i;pnext=NULL;qnext=(4);(5);}return(head);答案:(1)p(2)q=p(3)(NODE*)malloc(sizeof(NODE))(4)p(5)q=p设有一个头指针为head的不带头结点单向链表,且p、q是指向链表中结点类型的指针变量,p指向链表中某结点a (设链表中没有结点的数据域与结点a的数据域相同),写出相关语句(1).使该单向链表成为单向循环链表(2)删去a结点q=p;x=p->data;while(q->next!=NULL)q=q->next;__(1)___q=p;p=p->next;while(p->data!=x){q=p;__(2)___}__(3)___(1)q->next=head;(2)p=p->next;(3)q->next=p->next;4.以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。
国家开放大学电大《数据结构》网络课形考任务2作业及答案

国家开放大学电大《数据结构》网络课形考任务2作业及答案形考任务2一、单项选择题(每小题2分,共50分)题目1若让元素1,2,3依次进栈,则出栈顺序不可能为()。
选择一项:A. 3,1,2题目2一个队列的入队序列是1,2,3,4。
则队列的输出序列是()。
选择一项:D. 1,2,3,4题目3向顺序栈中压入新元素时,应当()。
选择一项:D. 先移动栈顶指针,再存入元素题目4在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行()。
选择一项:C. p->next=top;top=p;题目5在一个栈顶指针为top的链栈中删除一个结点时,用 x保存被删结点的值,则执行()。
选择一项:A. x=top->data;top=top->next;题目6判断一个顺序队列(最多元素为m)为空的条件是()。
选择一项:A. front==rear题目7判断一个循环队列为满的条件是()。
选择一项:B. (rear+1)%MaxSize==front题目8判断栈满(元素个数最多n个)的条件是()。
选择一项:A. top==n-1题目9设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵元素a6,2在一维数组B中的下标是()。
选择一项:A. 17题目10在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个()结构。
选择一项:D. 队列题目11一个递归算法必须包括()。
选择一项:D. 终止条件和递归部分题目12在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为()。
选择一项:A. f=f->next;题目13在一个链队中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为()。
2020年国家开放大学电大数据结构题库

数据结构课程平时作业1一. 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的①以及它们之间的②和运算等的学科。
①A. 操作对象 B. 计算方法 C. 逻辑存储 D. 数据映象②A. 结构 B. 关系 C. 运算 D. 算法2.数据结构被形式地定义为(K, R), 其中K是①的有限集合, R是K上的②的有限集合。
①A. 算法 B. 数据元素 C. 数据操作 D. 逻辑结构3.②A. 操作 B. 映象 C. 存储 D. 关系A.在数据结构中, 从逻辑上可以把数据结构分成( )。
动态结构和静态结构 B. 紧凑结构和非紧凑结构C. 线性结构和非线性结构D. 内部结构和外部结构4.线性结构是数据元素之间存在一种:A)一对多关系B)多对多关系C)多对一关系D)一对一关系5.数据结构中, 与所使用的计算机无关的是数据的结构;A) 存储B) 物理C) 逻辑D) 物理和存储二.填空题(将正确的答案填在相应的空中)1. 在线性结构中, 第一个结点①前驱结点, 其余每个结点有且只有②个前驱结点;最后一个结点③后续结点, 其余每个结点有且只有④个后续结点。
2. 在树形结构中, 树根结点没有①结点, 其余每个结点有且只有②个前驱结点;叶子结点没有③结点, 其余每个结点的后续结点可以④。
3. 在图形结构中, 每个结点的前驱结点数和后续结点数可以①。
4.线性结构中元素之间存在①关系, 树形结构中元素之间存在②关系, 图形结构中元素之间存在③关系。
5.数据结构包括数据的、数据的和数据的这三个方面的内容。
6. 下面程序段的时间复杂度是①。
for(i=0;i<n;i++)for(j=0;j<m;j++)A[i][j]=0;7. 下面程序段的时间复杂度是①。
S=0;for(i=0;i<n;i++)for(j=0; j<n; j++)s+=b[i][j];sum=s;三、简答题1.数据结构是一门研究什么内容的学科?2.数据元素之间的关系在计算机中有几种表示方法?各有什么特点?3.设有数据逻辑结构S=(D,R), 试按题所给条件画出这些逻辑结构的图示, 并确定相对于关系R, 哪些结点是开始结点, 哪些结点是终端结点?D={d1,d2,d3,d4}R={(d1,d2),(d2,d3),(d3,d4) }部分参考答案一、单选题二、A B 2. B D 3. C 4. D 5. C三、填空题1.无, 1, 无, 12.前驱, 1个, 后继, 多个3.多个4.一对一, 一对多, 多对多5.逻辑结构、物理结构、数据运算6. O(n*m)7. O(n*n)三、简答题1.略见课件2.略3. d1( d2(d3(d4 线性结构数据结构课程平时作业2一. 单项选择题1.线性表L=(a1, a2,…,a n),下列说法正确的是()。
国家开放大学电大《数据结构》网络课形考任务3作业及答案

国家开放大学电大《数据结构》网络课形考任务3作业及答案档任务3一、单项选择题(每小题2分,共38分)题目1 假定一棵二叉树中,双分支结点数为15,单分支结点数为30,则叶子结点数为()。
选择一项: A、47 B、16 C、17 D、15 题目2 二叉树第k层上最多有()个结点。
选择一项: A、2k-l B、2k-l C、2k-l D、2k 题目3 将含有150个结点的完全二叉树从根这一层开始,每一层从左到右依次对结点进行编号,根结点的编号为1,则编号为69的结点的双亲结点的编号为()。
选择一项: A、36 B、35 C、34 D、33 题目4 如果将给定的一组数据作为叶子数值,所构造出的二叉树的带权路径长度最小,则该树称为()。
选择一项: A、二叉树 B、哈夫曼树 C、完全二叉树 D、平衡二叉树在一棵度具有5层的满二又树中结点总数为( )o 选择一项: A、16 B、3231 D、33 题目6 一棵完全二叉树共有6层,且第6层上有6个结点,该树共有()个结点。
选择一项: A、31 B、37 C、38 D、72 题目7 利用3、6、8、12这四个值作为叶子结点的权,生成一棵哈夫曼树,该树中所有叶子结点中的最长带权路径长度为(在一棵树中,()没有前驱结点。
)、选择一项: A、18 B、16 C、30 D、12 题目8 选择一项: A、树根结点 B、叶结点 C、空结点 D、分支结点题目9 设一棵采用链式存储的二叉树,除叶结点外每个结点度数都为2,该树结点中共有20个指针域为空,则该树有()个叶结点。
选择一项: B、10 C、21 D、22 题目10 在一个图G中,所有顶点的度数之和等于所有边数之和的()倍。
选择一项: A、2 B、1 C、4 D、1/2 题目11 邻接表是图的一种()<、选择一项: A、链式存储结构 B、顺序存储结构C、散列存储结构 D、索引存储结构题目12 图的深度优先遍历算法类似于二叉树的()遍历。
电大数据结构(本科)考试题及答案

一、单项选择题1.深度为5的完全二叉树共有20个结点,则第5层上有()个结点(根所在结点为第一层)。
A.3 B.8 C.5 D.62.同一种逻辑结构()。
A.只能有唯一的存储结构B.可以有不同的存储结构C.只能表示某一种数据元素之间的关系D.以上三种说法均不正确3.已知一个图的边数为m,则该图的所有顶点的度数之和为()。
A.2m B.m C.2m+1 D.m/24.链表所具备的特点是()。
A.可以随机访问任一结点B.占用连续的存储空间C.插入删除元素的操作不需要移动元素结点D.可以通过下标对链表进行直接访问5.数据结构中,与所使用的计算机无关的是数据的()结构。
A.物理 B.存储 C.逻辑与物理 D.逻辑6.数据的物理结构()。
A.与数据的逻辑结构无关 B.仅仅包括数据元素的表示C.只包括数据元素间关系的表示 D.包括数据元素的表示和关系的表示7.链表所具备的特点是()。
A.可以随机访问任一结点B.占用连续的存储空间C.插入删除不需要移动元素结点D.可以通过下标对链表进行直接访问8.线性结构中数据元素的位置之间存在()的关系。
A.一对一 B.一对多C.多对多 D.每一个元素都有一个直接前驱和一个直接后继9.线性表只要以()方式存储就能进行折半查找。
A.链接B.顺序C.关键字有序的顺序D.二叉树10.以下表中可以随机访问的是()。
A.单向链表 B.双向链表C.单向循环链表D.顺序表11.散列查找的原理是()。
A.在待查记录的关键字值与该记录的存储位置之间建立确定的对应关系B.按待查记录的关键字有序的顺序方式存储C.按关键字值的比较进行查找D.基于二分查找的方法12.算法的时间复杂度与()有关。
A.所使用的计算机 B.与计算机的操作系统C.与算法本身 D.与数据结构13.对n个元素进行冒泡排序若某趟冒泡中只进行了()次元素间的交换,则表明序列已经排好序。
A.1 B.2 C.0 D.n-1 14.设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为()。
国家开放大学《数据结构(本)》综合练习题参考答案

A. 111,113,115,117 B. 117,115,111,113 C. 117,115,113,111 D. 113,111,117,115 11.图状结构中数据元素的位置之间存在( )的关系。 A. 每一个元素都有一个且只有一个直接前驱和一个直接后继 B. 多对多 C. 一对一 D. 一对一 12.以下说法正确的是( )。 A. 栈和队列的特点都是后进后出 B. 队列的特点是先进后出 C. 栈的特点是先进先出 D. 栈的特点是先进后出 13.一个单链表中,在 p 所指结点之后插入一个 s 所指的结点时,可执行: s->next=p->next;和( )。 A. s=p->next; B. p=s->next;
国家开放大学《数据结构(本)》综合练习题参考答案
一、填空题 1.对稀疏矩阵进行压缩存储,可采用三元组表,一个有 10 行的稀疏矩阵 A 共有 97 个零元素,其相应的三元组表共有 3 个元素。该矩阵 A 有(10)列。 2.结构中的数据元素存在多对多的关系称为(图状)结构。 3.在单向链表中,q 指向 p 所指结点的直接后继结点,要删除 q 所指结点,可以 用操作(p->next;)= q->next;。 4.n 个元素进行冒泡法排序,第 j 趟冒泡要进行(n-j)次元素间的比较。 5.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的行 下标、列下标和(数组元素)三项信息。 6.中序遍历(二叉排序树)树可得到一个有序序列。 7.队列的操作特点是后进(后出)。 8.待排序的序列为 8,3,4,1,2,5,9,采用直接选择排序算法,当进行了两 趟选择后,结果序列为(1,2,4,8,3,5,9)。 9.n 个元素进行冒泡法排序,通常需要进行(n-1)趟冒泡。 10.广义表((a,b),d,e((i,j),k))的长度是(4) 。 11.中序遍历二叉排序树可得到一个(有序)的序列。 12.广义表的(c,a,(a,b),d,e,((i,j),k))深度是(3)。 13.广义表(c,a,(a,b),d,e,((i,j),k))的长度是(6)。 14.对稀疏矩阵进行压缩存储,可采用三元组表,一个有 10 行 10 列的稀疏矩阵 A 共有 95 个零元素,其相应的三元组表共有(5)个元素。 15.广义表的(c,a,(a,b),d,e,((i,j),k))深度是(3)。 16.在对一组记录(50,49,97,22,16,73,65,47,88)进行直接插入排序 时,当把第 7 个记录 65 插入到有序表时,为寻找插入位置需比较(3)次。 17. 循 环 队 列 在 规 定 少 用 一 个 存 储 空 间 的 情 况 下 , 队 空 的 判 定 条 件 为 (front==rear)。 18.一棵有 5 个叶结点的哈夫曼树,该树中总共有(9)个结点。 19.c 语言中,字符串“E”存储时占(2)个字节。
2021年7月国家开放大学电大期末试题及答案:数据结构(本)

)
21. 递归定义的数据结构通常用递归算法来实现对它的操作。(
)
22. 队列的特性是先进后出。(
)
23. 用字符数组存储长度为 n 的字符串,数组长度至少为 n+l 。(
)
24. 一个广义表的表头总是一个广义表。(
)
25. 若树的度为 2 时,该树为二叉树。(
)
(1252 号)数据结构(本)试题第 3 页(共 6 页)
抑
郎
while(! QueueEmpty(Q)) printf(" %cl" ,OutQueue(Q));
长
执行后的输出结果为:
A. 5 8 12 15 30
B. 12 15 5 30 18
C. 8 12 15 30 18
D. 12 15 5 18 30
33. 设查找表为:
(2) 用折半查找在该查找表成功查找到元素 55 需要经过(
B. 15
C. 16
D. 32
12. 一个具有 n 个顶点的无向完全图包含(
)条边。
A. n(n-1)
B. n(n+D
— C. n(n 1)/2
D. n(n+l)/2
(1252 号)数据结构(本)试题第 2 页(共 6 页)
13. 对于一个具有 n 个顶点和 e 条边的无向图,若采用邻接表表示,则所有顶点邻接表中
9. 广义表的 (a,(d,a,b),h,(e,(Ci,j),k))) 深度是(
)。
A. 6
B. 10
C. 8
D. 4
10. 在一棵二叉树中,若编号为 8 的结点存在右孩子,则右孩子的顺序编号为(
)。
A. 18
电大数据结构程序题

1.以下函数为直接选择排序算法,对a[1],a[2],…a[n]中的记录进行直接选择排序,完成程序中的空格typedefstruct{intkey;……}NODE;voidselsort(NODEa[],intn){inti,j,k;NODEtemp;for(i=1;i<=___(1)_____;i++){k=i;for(j=i+1;j<=___(2)_____;j++)if(a[j].key<a[k].key)__(3)______;if(i!=k){temp=a[i];___(4)_____;____(5)____;答案:(1)n-1(2)n(3)k=j(4)a[i]=a[k](5)a[k]=temp2.以下是用尾插法建立带头结点且有n个结点的单向链表的程序,结点中的数据域从前向后依次为1,2,3,……,n,完成程序中空格部分。
NODE*create(n){NODE*head,*p,*q;inti;p=(NODE*)malloc(sizeof(NODE));head=(1);(2);pnext=NULL;/*建立头结点*/for(i=1;i<=n;i++){p=(3);pdata=i;pnext=NULL;qnext=(4);(5);}return(head);答案:(1)p(2)q=p(3)(NODE*)malloc(sizeof(NODE))(4)p(5)q=p设有一个头指针为head的不带头结点单向链表,且p、q是指向链表中结点类型的指针变量,p指向链表中某结点a(设链表中没有结点的数据域与结点a的数据域相同),写出相关语句(1).使该单向链表成为单向循环链表(2)删去a结点q=p;x=p->data;while(q->next!=NULL)q=q->next;__(1)___q=p;p=p->next;while(p->data!=x){q=p;__(2)___}__(3)___(1)q->next=head;(2)p=p->next;(3)q->next=p->next;4.以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。
中央电大开放本科计算机科学与技术专业数据结构试题(b)_1007

A. 1
B. 2
c.
1354
0
D. n-1
12. 在 对 一 组 元 素(64 ,48 ,106 ,33 ,25 ,82 ,70 ,55 ,93) 进 行 直 接 插 入 排 序 时 , 当 进 行 到 要 把 第 7 个元 素 7 0 插 入 到 已 经 排好 序 的 子 表 时 , 为 找 到 插 入 位 置 , 需 进 行 ( )次元素间的比较
(
)的值为真。
A.
p 一>next=NULL
B. p= =NULL
c.
p 一>next=head
D.
p 一 > next =
= head
)时,移
3. 设顺 序 存 储 的 线 性 表 长 度 为 n , 要 删 除 第 1 个 元 素 , 按 课 本 的 算 法 , 当 i = ( 动元素的次数为 3 。
3.
(1)设有一个整数序列 { 5 0, 3 8, 1 6, 8 2, 1 1 0, 1 3, 6 4 },依次取出序列中的数,构造一棵二叉
排序树。 (2) 利 用 上 述 二叉 排 序 树 , 为 了 查 找110 , 经 多 少 次 元 素 间 的 比 较 能 成 功 查 到 , 为 了 查 找 15 , 经 多 少 次元 素 间 的 比 较 可 知 道 查 找 失 败 。
A. 21 C. 22
15. 队 列 的 插 入操 作 在 (
A. 队 头
B. 队 尾
B. 20
D. 19
)进行。
c.队头或队尾 D. 在 任 意 指 定 位 置
得分|评卷人
二、填空题(每小题 2 分 , 共 2 4 分 )
1.通常可以把某城市中各公交站点间的线路图抽象成结构。 2. 要 在 一 个 单 向 链 表 中 删 除 p 所 指 向 的 结 点 , 已 知 q 指 向 p 所 指 结 点 的 直 接 前 驱 结 点 ,
最新国家开放大学电大本科数据结构期末题库及答案

最新国家开放大学电大本科《数据结构》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《数据结构》题库及答案一一、单项选择题。
在括号内填写所选择的标号(每小题2分。
共l8分)1.下面程序段的时间复杂度为( )。
for(int i=0;i<m;i++)for(int j=0;j<n;j++)a[i][j]=i*j;A.O(m2) B.O(n2)C.O(m*n) D.0(m+n)2.在二维数组中,每个数组元素同时处于( )个向量中。
A.0 B.1C.2 D.n3.设有两个串t和P,求P在t中首次出现的位置的运算叫做( )。
A.求子串 B.模式匹配C.串替换 D.串连接4.利用双向链表作线性表的存储结构的优点是( )。
A.便于单向进行插入和删除的操作B.便于双向进行插入和删除的操作C.节省空间D.便于销毁结构释放空问5.设链式栈中结点的结构为(data,link),且top是指向栈顶的指针。
若想在链式栈的栈顶插入一个由指针s所指的结点,则应执行( )操作。
A.top一>link=S;B.s一>link=top一>link;top一>link=S;C.S-->link=top;top—S;D.s一>link=top;top—top一>link;6.一棵具有35个结点的完全二叉树的高度为( )。
假定空树的高度为一l。
A.5 B.6C.7 D.87.向具有n个结点的堆中插入一个新元素的时间复杂度为( )。
A.O(1) B.0(n)C.O(log2n)D.O(nlog2n)8.在一棵AVL树中,每个结点的平衡因子的取值范围是( )。
数据结构程序填空复习题

《数据结构》程序填空复习题说明:本文档中涉及到的算法并非本书的全部,有些可根据此处的情况自行看书和作业题,黑色为综合练习上的题目,红色为我另增加的题,这些空的选择是根据我个人的经验来决定的并不能完全代表中央电大的出卷老师,因此一定不能有肯定就考这些题目的想法。
不能放弃其他容的复习,切记!!!一、线性表1.设线性表为(6,10,16,4),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数据。
#define NULL 0void main( ){NODE a,b,c,d,*head,*p;a.data=6;b.data=10;c.data=16;d.data=4; /*d是尾结点*/head= (1);a.next=&b;b.next=&c;c.next=&d;(2); /*以上结束建表过程*/p=head; /*p为工作指针,准备输出链表*/do{printf(“%d\n”, (3));(4);}while( (5));}答案:(1)&a(2)d next=NULL(3)p->data(4)p=p->next(5)p!=NULL2. 以下函数在head为头指针的具有头结点的单向链表中删除第i个结点,struct node{ int data;struct node *next;};typedefstruct node NODEint delete(NODE *head,int i){NODE *p,*q;int j;q=head;j=0;while((q!=NULL)&&( ___(1)_____)){___(2)_____;j++;}if(q==NULL)return(0);p= ___(3)_____;___(4)_____=p->next;free(___(5)_____);return(1);}答案:(1)j<i-1(2)q=q->next(3)q->next(4)q->next(5)p3.将新元素插入到线性表中的第i位,MAX是数组的个数,a[0]用以存放线性表长度,b存放待插入的元素值,i存放插入的位置,n存放线性表长度{int a[MAX];int i,j,b,n;scanf(“%d%d%d”,&b,&i,&n);for(j=1;j<=n;j++)scanf(“%d”,&a[j]);a[0]=n;for(j=n; (1);j- -)(2);(3);(4);for(j=1;j<=a[0];j++)printf(“%5d\n”,a[j]);}答案:(1)j>=i(2)a[j+1]=a[j](3)a[i]=b(4)a[0]=n+14.用头插法建立带头结点且有n个结点的单向链表的算法NODE *create(n){NODE *head,*p,*q;int ip=(NODE *)malloc(sizeof(NODE));(1);(2);(3);for(i=1;i<=n;i++){p=(NODE *)malloc(sizeof(NODE));p->data=i;if(i==1)(4);else{(5);(6);}}return(head);}答案:(1)head=p(2)p->next=NULL(3)q=p(4)p->next=NULL(5)p->next=q->next(6)q->next=p一、栈1. 以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针struct node{ ElemType data;struct node *next;};struct node *top ;void Push(ElemType x){struct node *p;p=(struct node*)malloc(___(1)_____);p->data=x;___(2)_____;}答案:(1)sizeof (struct node)(2)p->next=top(3)top=p二、队列1. 以下函数为链队列的入队操作,x为要入队的结点的数据域的值,front、rear分别是链队列的队头、队尾指针struct node{ ElemType data;struct node *next;};struct node *front,*rear;void InQueue(ElemType x){struct node *p;p= (struct node*) ___(1)_____;p->data=x;p->next=NULL;___(2)_____;rear= ___(3)_____;}答案:(1)malloc(sizeof (struct node))(2)rear->next=p(3)p2. 以下函数为链队列的出队操作(链队列带有头结点),出队结点的数据域的值由x返回,front、rear分别是链队列的队头、队尾指针struct node{ ElemType data;struct node *next;};struct node *front,*rear;ElemType OutQueue(){ElemType x;if(___(1)_____) {printf("队列下溢错误!\n");exit(1);}else {struct node *p=front->next;x=p->data;front->next= ___(2)_____;if(p->next==NULL) rear=front;free(p);___(3)_____;}}答案:(1)front= =rear(2)p->next(3)return(x)三、树1.以下程序是先序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。
2021国开大学电大本科《数据结构》期末试题及答案(试卷号:1252)

国家开放大学电大本科《数据结构》期末试题及答案〔试卷号:1252〕用分|评卷人| 工.———一、单项选择腰〔把合适的选项Ml号填写在括号内。
符小分.共----------------------- 45 分〕】・在数据结构中.从谟捌上可以把数据结枸分为《A.动态结构和静态结构C.内部结构和外部结构2.下面程序段的时间复杂度是〔J.H.紧密籍构和非紧漠结构D.找性结构和非线性结构for(i=l i!<- nii4-4 )fcr(i=顷 V = n$ j + 十〞for(k=l ik< = nilc-f- +)cCiWAcEE+MiNk】"住1口\2(XD& 0( logj n >C. O(n)D.〔〕3〕3.在一个单堡表中p指向结点a・q疳向结点A的宜接后撰结点b.要删除结点b.可执行〔〕•A. p~ >ncxt ~q >nrxt C. p —>next = qB. p«q ->nextD・ p—>next = q4.讹0 •个氏世为■的响序戊•要在.第,个兀素之UU〔也就是柚人无素作为新&的t 元蒙〕・!•人一个兀索•网椎劫元泰个散为〔A> n—1B. n-i^ 1C n—i+l D・i5.一个队刊的入队序州站L2.LL南队列的知出序列惬〔A. 4.3,2J C L4.3.2K 1.2.3.4 11 3,2.1.16. 在一个tUKM*l为mp的燃蚀中.将一卜pIMf所桁的M点入校•应执Ae top—>next*pK p—>nrx< - top :>nrxt i lop- >nrxt p(\ p >next*tupi 1叫尸"Pfh p >next top >nrxti top lt)p->nexi7. n|Wr-个棚环队州Q(JB 8几•素为m)为满的条fllH )・A. Q->front - - Q -: -rearK Q- > front I Q— >gr〔*. Q —Xronl 《Q—Arsr+1〕% n\D. Q —>froni! IQ—>fr"+1〉X m8. OR个甲p和加4中地p的子巾•求Q在p中H次出现的位置的算Ifc林为〔〕•A.求子申H.C模式西ft! 口,求中长9. -个N空广义&的AK 〕.A.不可能是障于H.RfiB暴于取C HIBftUK-f D・可以址于去或瞬*10. 料中的留点散等于所础点的度数如〔〕・A. IB. 0C 2 D.一1it a m h.»5/2的靖仪故皱参为〔〕.A- M H. 15c« 1612.在一个图G中,所有顶点的度数之和等于所有边数之和的〔〕倍。
国家开放大学电大数据结构(试题50道含答案)

国家开放大学电大数据结构(试题50道含答案)栈是限定在表的一端进行插入和删除操作的线性表,又称为先进后出表。
()A.正确B.错误正确答案:A在有序顺序存储的线性表中查找一个元素,用折半查找速度一定比顺序查找快。
()A.正确B.错误正确答案:B在一维数组的定义语句中,数组名后带有一对花括号。
()A.正确B.错误C. n~iD. n-i+1正确答案:c设有一个长度为10的顺序表,要在第3个元素之后插入一个元素,则需移动元素的个数为()。
A.36B.78正确答案:C设有一个单向链表,结点的指针域为next,头指针为head, p 指向尾结点,为了使该单向链表改为单向循环链表,可用语句p->next=head o()A.正确B.错误若要在程序文件中使用标准输入和输出函数,则需要引入的系统头文件为stdio. h。
()A.正确B.错误正确答案:A每次只能向文本文件中写入一个字符,不能一次写入一个字符串。
()A.正确B.错误正确答案:B链表所具备的特点之一是()。
A.可以随机访问任一结点B.需要占用连续的存储空间C.插入元素的操作不需要移动元素D.删除元素的操作需要移动元素假定一组记录的排序码为(46, 79, 56, 38, 40, 80),对其进行归并排序的过程中,第二趟归并后的结果为()。
A.46,79,56,38,40,80B.46979,38,56,40,80C.38,46,56,79,40,80D.38,40,46,56,79,80正确答案:C假定要访问一个结构变量x中的由指针成员a所指向的对象,则表示方法为()。
A.x->aX. aB.*(a. x)*(X. a)正确答案:D 假定p是一个指向数据对象的指针,则通过P表示该数据对象为A. pxB.p&C.&pD.*p正确答案:D假定a是一个一维数组,则a+i的值与a[i]的值相等。
()A.正确B.错误正确答案:B二叉树只能采用二叉链表来存储。
国家开放大学本科末考试数据结构历年试题与参考答案18C

国家开放⼤学本科末考试数据结构历年试题与参考答案18C国家开放⼤学(中央⼴播电视⼤学)2018年春季学期“开放本科”期末考试数据结构(本)试题2018年7⽉⼀、单项选择题(每⼩题3分,共30分)1.数据的存储结构包括数据元素的表⽰和( )。
A.数据处理的⽅法B.相关算法C.数据元素的类型D.数据元素间的关系的表⽰参考答案:数据元素间的关系的表⽰2.在⼀个头指针为head的单向链表中,p指向尾结点,要使该链表成为单向循环链表可执⾏( )。
A.p=head->next;B.head->next=p;C.head⼀>next=p->next;D.p⼀>next=head;参考答案:p⼀>next=head;3.元素111,113,115,117按顺序依次进栈,则该栈的不可能输出序列是( )(进栈出栈可以交替进⾏)。
A.117,115,113,111B.111,113,115,117C.117,115,111,113D. 113,111,117,115参考答案:117,115,111,1134.以下说法正确的是( )。
A.栈的特点是先进后出C.队列的特点是先进后出B.栈的特点是先进先出D.栈和队列的特点都是先进后出参考答案:栈的特点是先进后出5.设有⼀个20阶的对称矩阵A(第⼀个元素为a1.1),采⽤压缩存储的⽅式,将其下三⾓部分以⾏序为主序存储到⼀维数组B中(数组下标从1开始),则矩阵中元素a6.2在⼀维数组B中的下标是( )。
A.24 C.16B.17 D.23参考答案:176.设⼀棵有2n+1个结点的⼆叉树,除叶结点外每个结点度数都为2,则该树共有( )个叶结点。
A.nB.n+1C.n+2D.n⼀1参考答案:n+17.已知如图1所⽰的⼀个图,若从顶点a出发,按⼴度优先搜索法进⾏遍历,则可能得到的⼀种顶点序列为( )。
A.abecdf C.aebcfdB.aecbdf D.aedfcb参考答案:aecbdf8.线性表以( )⽅式存储,能进⾏折半查找。
数据结构(本)-国家开放大学电大学习网形考作业题目答案

数据结构(本)一、单选题1.把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()。
A.逻辑结构B.物理结构C.算法的具体实现D.给相关变量分配存储单元正确答案: B2.下列说法中,不正确的是()。
A.数据元素是数据的基本单位B.数据项是数据中不可分割的最小可标识单位C.数据可有若干个数据元素构成D.数据项可由若干个数据元素构成正确答案: D3.一个存储结点存储一个()。
A.数据项B.数据元素C.数据结构D.数据类型正确答案: B4.数据结构中,与所使用的计算机无关的是数据的()。
A.存储结构B.物理结构C.逻辑结构D.物理和存储结构正确答案: C5.在线性表的顺序结构中,以下说法正确的是()。
A.逻辑上相邻的元素在物理位置上不一定相邻B.数据元素是不能随机访问的C.逻辑上相邻的元素在物理位置上也相邻D.进行数据元素的插入、删除效率较高正确答案: C6.对链表, 以下叙述中正确的是()。
A.不能随机访问任一结点B.结点占用的存储空间是连续的C.插入删除元素的操作一定要要移动结点D.可以通过下标对链表进行直接访问正确答案: A7.下列的叙述中,不属于算法特性的是()。
A.有穷性B.输入性C.可行性D.可读性8.算法的时间复杂度与()有关。
A.所使用的计算机B.计算机的操作系统C.算法本身D.数据结构正确答案: C9.设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为()。
A.n-i+1B.n-iC.n-i-1D.i正确答案: A10.设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为()。
A.n-i+1B.n-iC.n-i-1D.i正确答案: B11.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句()。
A.p=q->nextB.p->next=qC.p->next=q->nextD.q->next=NULL正确答案: C12.在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。
2023年7月国开电大本科《数据结构》期末考试试题及答案

2023年7月国开电大本科《数据结构》期末考试试题及答案试题部分1. 请简述数据结构的定义及其作用。
2. 什么是栈和队列?请分别描述它们的特点和应用场景。
3. 字符串是一种常见的数据类型,请列举至少两种常见的字符串操作方法,并解释它们的作用。
4. 请说明二叉树的定义和特点,并给出一个二叉树的示例。
5. 简要描述图的基本概念,并给出一个使用邻接矩阵表示图的例子。
6. 请解释深度优先搜索(DFS)和广度优先搜索(BFS)算法的原理,并说明它们在图的遍历中的应用。
7. 树的遍历是指按照一定顺序访问树中的所有节点。
请解释前序遍历、中序遍历和后序遍历的概念。
8. 请解释散列函数的作用和原理,并说明散列表在实际中的应用。
9. 简要介绍至少两种排序算法,并分别说明它们的时间复杂度。
10. 简述动态规划算法的原理及应用场景。
答案部分1. 数据结构是指数据元素之间的关系,以及对数据元素的操作。
它的作用是组织和存储数据,以便高效地访问和操作。
2. 栈是一种只能在一端进行插入和删除操作的线性数据结构,特点是后进先出(LIFO)。
它常用于括号匹配、表达式求值等场景。
队列是一种只能在一端插入,在另一端删除的线性数据结构,特点是先进先出(FIFO)。
它常用于任务调度、缓存管理等场景。
3. 常见的字符串操作方法包括字符串连接、子串查找。
字符串连接用于将两个字符串合并为一个字符串。
子串查找用于在一个字符串中找到特定子串的位置或判断子串是否存在。
4. 二叉树是一种特殊的树结构,每个节点最多有两个子节点,分别称为左子节点和右子节点。
它的特点是具有递归的结构,可以用于实现排序、查找等功能。
例如,下图是一个二叉树的示例:A/ \B C/ \D E5. 图是由节点和边组成的一种数据结构,节点表示实体,边表示节点之间的关系。
邻接矩阵可以用于表示图结构,矩阵的行和列分别表示节点,矩阵中的值表示节点之间的关系。
例如,下面是一个使用邻接矩阵表示的图的例子:| A | B | C |--|---|---|---|A| 0 | 1 | 1 |B| 1 | 0 | 1 |C| 1 | 1 | 0 |6. 深度优先搜索(DFS)和广度优先搜索(BFS)是图的遍历算法。
国家开放大学数据结构形考1题目及答案

一、单项选择题(每小题3分,共60分)题目1题干把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为()。
选择一项:A. 逻辑结构B. 物理结构C. 给相关变量分配存储单元D. 算法的具体实现题目2题干下列说法中,不正确的是()。
选择一项:A. 数据项是数据中不可分割的最小可标识单位B. 数据可有若干个数据元素构成C. 数据元素是数据的基本单位D. 数据项可由若干个数据元素构成题目3题干一个存储结点存储一个()。
选择一项:A. 数据元素B. 数据项C. 数据类型D. 数据结构题目4题干数据结构中,与所使用的计算机无关的是数据的()。
选择一项:A. 存储结构B. 物理和存储结构C. 物理结构D. 逻辑结构题目5题干在线性表的顺序结构中,以下说法正确的是()。
选择一项:A. 进行数据元素的插入、删除效率较高B. 数据元素是不能随机访问的C. 逻辑上相邻的元素在物理位置上不一定相邻D. 逻辑上相邻的元素在物理位置上也相邻题干对链表, 以下叙述中正确的是()。
选择一项:A. 结点占用的存储空间是连续的B. 插入删除元素的操作一定要要移动结点C. 不能随机访问任一结点D. 可以通过下标对链表进行直接访问题目7题干下列的叙述中,不属于算法特性的是()。
选择一项:A. 可行性B. 有穷性C. 输入性D. 可读性题目8题干算法的时间复杂度与()有关。
选择一项:A. 计算机的操作系统B. 算法本身C. 所使用的计算机D. 数据结构题目9题干设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为()。
选择一项:A. n-i+1B. iC. n-i-1D. n-i题目10题干设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为()。
选择一项:A. n-i-1B. n-iC. n-i+1D. i题干在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.以下函数为直接选择排序算法,对a[1],a[2],…a[n]中的记录进行直接选择排序,完成程序中的空格typedef struct{ int key;……}NODE;void selsort(NODE a[],int n){int i,j,k;NODE temp;for(i=1;i<= ___(1)_____;i++){k=i;for(j=i+1;j<= ___(2)_____;j++)if(a[j].key<a[k].key) __(3)______;if(i!=k){temp=a[i];___(4)_____;____(5)____;答案:(1)n-1 (2)n (3)k=j (4)a[i]=a[k] (5)a[k]=temp2.以下是用尾插法建立带头结点且有n个结点的单向链表的程序,结点中的数据域从前向后依次为1,2,3,……,n,完成程序中空格部分。
NODE *create(n){NODE *head , *p, *q;int i;p=(NODE*)malloc(sizeof(NODE));head= (1); (2);p→next=NULL; /*建立头结点*/for(i=1; i<=n; i++){ p= (3);p→data=i;p→next=NULL;q→next= (4);(5);}return(head);答案:(1)p (2)q=p (3)(NODE*)malloc(sizeof(NODE)) (4)p (5)q=p3 .设有一个头指针为head的不带头结点单向链表, 且p、q是指向链表中结点类型的指针变量,p指向链表中某结点a(设链表中没有结点的数据域与结点a的数据域相同), 写出相关语句(1).使该单向链表成为单向循环链表(2) 删去a结点q=p; x=p->data;while (q->next!=NULL)q=q->next;__(1)___q=p; p=p->next;while(p->data!=x){ q=p;__(2)___}__(3)___(1)q->next=head;(2)p=p->next;(3)q->next=p->next;4.以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。
void Inorder (struct BTreeNode *BT){ if(BT!=NULL){(1);(2); (3);}}(1)Inorder(BT->left)(2)printf(“%c”,BT->data)(3) Inorder(BT->right)3.以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格部分(树结构中,左、右指针域分别为left和right,数据域data为字符型,BT指向根结点)。
void Postorder (struct BTreeNode *BT){ if(BT!=NULL){(1); (2); (3);}}答案:(1)Postorder(BT->left)(2)Postorder(BT->right)(3)printf(“%c”,BT->data)1.以下函数是二叉排序树的查找算法,若二叉树为空,则返回根结点的指针,否则,返回值是指向树结点的结构指针p(查找成功p指向查到的树结点,不成功p指向为NULL)完成程序中的空格typedef struct Bnode{ int key;struct Bnode *left;struct Bnode *right;} Bnode;Bnode *BSearch(Bnode *bt, int k)/* bt用于接收二叉排序树的根结点的指针,k用以接收要查找的关键字*/{ Bnode *p;if(bt== ___(1)_____)return (bt);p=bt;while(p->key!= __(2)______){ if(k<p->key)___(3)_____;else ___(4)_____;if(p==NULL) break;}return(___(5)_____);答案:(1)NULL(2)k(3)p=p->left(4)p=p->right(5)p3 .设有一个头指针为head的不带头结点单向链表,p、q是指向链表中结点类型的指针变量,p指向链表中结点a, (设链表中没有结点的数据域与结点a的数据域相同),写出相关语句(1).使该单向链表成为单向循环链表(2)插入结点s,使它成为a结点的直接前驱q=p; x=p->data;while (__(1)___ )q=q->next;q->next=head;q=p; p=p->next;while(p->data!=x){ q=p;__(2)___}s->next=p;__(3)___答案:(1) q->next!=NULL (2) p=p->next; (3)q->next=s;2.设线性表为(6,10,16,4),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数据。
#define NULL 0void main( ){NODE a,b,c,d,*head,*p;a.data=6;b.data=10;c.data=16;d.data=4; /*d是尾结点*/head= (1);a.next=&b;b.next=&c;c.next=&d;(2); /*以上结束建表过程*/p=head; /*p为工作指针,准备输出链表*/do {printf(“%d\n”, (3));(4);}while( (5));答案:(1)&a(2)d next=NULL(3)p->data(4)p=p->next(5)p!=NULL1 . 以下程序是折半插入排序的算法=设待排序的记录序列存放在a[1],…a[n]中,以a[0]作为辅助工作单元,以下程序是要把a[i] 插入到已经有序的序列a[1],…a[i-1]中。
void binsort (NODE a[ ],int n){ int x,i,j,s,k,m;for (i=2;i<=__(1)___;i++){ a[0]=a[i];x= a[i].key;s=1;j=i-1;while (s<=j){ m=__(2)___if( x<a[m].key)__(3)___else__(4)___}for ( k=i-1;k>=j+1;k--)__(5)___=a[k];a[j+1]=a[0];1.答案:(1) n (2) (s+j)/2; (3) j=m-1; (4) s=m+1; (5) a[k+1]3.以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针struct node{ ElemType data;struct node *next;};struct node *top ;void Push(ElemType x){struct node *p;p=(struct node*)malloc(___(1)_____);p->data=x;___(2)_____;_____(3)___;答(1)sizeof (struct node) (2)p->next=top (3)top=p2.以下程序是快速排序的算法设待序的记录序列存放在a[start],…a[end]中,按记录的关键字进行快速排序,先进行一次划分,再分别进行递归调用void quicksort ( NODE a[ ], int start ,int end ){ int i,j;NODE mid ;if (start>=end )return;i=start;j=end;mid=a[i];while (i<j){ while(i<j && a[j].key>mid.key)j--;if(i<j){ a[i]=a[j];__(1)___;}while(i<j && a[i].key<=mid.key)__(2)___;if(i<j){ __(3)_____(4)___}}a[i]=mid;quicksort (a,stat, i-1);quicksort __(5)___}答案:2.(1) i++; (2) i ++; (3) a[j]=a[i]; (4) j--; (5) (a, i+1,end);4.以下函数为链队列的入队操作,x为要入队的结点的数据域的值,front、rear分别是链队列的队头、队尾指针struct node{ ElemType data;struct node *next;};struct node *front,*rear;void InQueue(ElemType x){struct node *p;p= (struct node*) ___(1)_____;p->data=x;p->next=NULL;___(2)_____;rear= ___(3)_____;}答:(1)malloc(sizeof (struct node)) (2)rear->next=p (3)p。