数据结构作业电子版
- 格式:doc
- 大小:801.00 KB
- 文档页数:15
数据结构一、选择题1.数据的存储结构是指( )。
A 存储在外存中的数据 B 数据所占的存储空间C 数据在计算机中的顺序存储方式D 数据的逻辑结构在计算机中的表示 2.下列关于栈的描述中错误的是( )。
A 栈是先进后出的线性表B 栈只能顺序存储C 栈具有记忆作用D 对栈的插入与删除操作中,不需要改变栈底指针 3.用链表表示线性表的优点是( )。
A 便于随机存取B 花费的存储空间较顺序存储少C 便于插入和删除操作D 数据元素的物理顺序与逻辑顺序相同 4.在下面关于线性表的叙述中,选出正确的一项( )。
A 线性表的每个元素都有一个直接前驱和直接后继;B 线性表中至少要有一个元素;C 线性表中的元素必须按递增或递减的顺序排列;D 除第一个元素和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。
5.设在栈中,由顶向下已存放元素c b a ,在第4个元素d 入栈前,栈中元素可以出栈,试问d 入栈后,不可能的出栈序列是 ( )。
A d c b a B c b d aC c a d bD c d b a6.在下列关于二叉树的叙述中,选出正确的一项( )。
A 在二叉树中,任何一个结点的度都是2;B 二叉树的度为2;C 在二叉树中至少有一个结点的度是2D 一棵二叉树的度可以小于27.下面的二叉树中,( )不是完全二叉树。
8.有一棵非空的二叉树(第0层为根结点),其第i 层上至多有多少个结点 ( )。
A 2iB 2i-1C 2i+1D i9.线性表的逻辑顺序与存储顺序总是一致的,这种说法 ( )。
A 正确B 不正确10.深度为k 的二叉树,所含叶子的个数最多为 ( )。
A 2KB KC 2k-1D 2k-111.深度为5的二叉树至多有( )个结点。
A 16B 32C 31D 1012.在下面关于线性表的叙述中,选出错误的一项( )。
A 采用顺序存储的线性表,必须占用一片连续的存储单元B 采用顺序存储的线性表,便于进行插入和删除操作C 采用链接存储的线性表,不必占用一片连续的存储单元D 采用链接存储的线性表,便于进行插入和删除操作13.已知一棵二叉树的前序遍历结果为ABCDEF ,中序遍历结果为CBAEDF ,则后序遍历的结果为( )。
1数据结构课程研究的主要内容包括()()()2一个完整的算法应该具有_____ _____ ______ ______ ______五个特性3数据的逻辑结构可分为_____ ______两大类4数据的逻辑结构是指而存储结构是指5逻辑上相邻的数据元素在物理位置上也相邻是存储结构的特点之一6为了实现随机访问线性结构应该采用存储结构7链式存储结构的主要特点是8算法分析主要从和这两个方面对算法进行分析(1)数据(2)数据元素(3)数据类型(4)数据结构(5)逻辑结构(6)存储结构(7)线性结构(8)非线性结构第二章作业一、判断题(在你认为正确的题后的括号中打√,否则打X)。
1.线性表的逻辑顺序与存储顺序总是一致的。
2.顺序存储的线性表可以按序号随机存取。
3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。
4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。
5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。
6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。
7.线性表的链式存储结构优于顺序存储结构。
8.在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。
9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。
10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。
二、单项选择题。
1.线性表是( ) 。
(A) 一个有限序列,可以为空; (B) 一个有限序列,不能为空;(C) 一个无限序列,可以为空; (D) 一个无序序列,不能为空。
2.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。
插入一个元素时平均要移动表中的()个元素。
(A) n/2 (B) n+1/2 (C) n -1/2 (D) n 3.线性表采用链式存储时,其地址( ) 。
电子科技大学电子科大16秋《数据结构》在线作业3一、单选题(共16 道试题,共48 分。
)1. 抽象数据类型的三个组成部分分别为()。
A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型正确答案:2. 已知一棵完全二叉树有64个叶子结点,则该树可能达到的最大深度为()。
A. 7B. 8C. 9D. 10正确答案:3. 已知在一棵度为3的树中,度为2的结点数为4,度为3的结点数为3,则该树中的叶子结点数为()。
A. 5B. 8C. 11D. 18正确答案:4. 已知指针p和q分别指向某单链表中第一个结点和最后一个结点。
假设指针s指向另一个单链表中某个结点,则在s所指结点之后插入上述链表应执行的语句为()。
A. q->next=s->next;s->next=pB. s->next=p;q->next=s->nextC. p->next=s->next;s->next=qD. s->next=q;p->next=s->next正确答案:5. 下面程序段的时间复杂度为()。
for (i=0; i<m; i++) for (j=0; j<n; j++) A[i][j]=i*j;A. O (m2)B. O (n2)C. O (m*n)D. O (m+n)正确答案:6. 在数据结构中,数据的逻辑结构可以分成()。
A. 内部结构和外部结构B. 线性结构和非线性结构C. 紧凑结构和非紧揍结构D. 动态结构和静态结构正确答案:7. 在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是()。
A. p=p->nextB. p->next=p->next->nextC. p->next=pD. p=p->next->next;正确答案:8. 采用两类不同存储结构的字符串可分别简称为()。
数据结构作业利用单向链表数据结构完成对链表的如下操作:1、创建一条含整数结点的无序链表2、链表结点的输出3、链表结点的升序排序4、分别计算链表中奇数和偶数结点之和并输出5、释放链表具体要求将程序功能做成菜单,形式如下:1、创建一条含整数结点的无序链表2、链表结点的输出3、链表结点的升序排序4、分别计算链表中奇数和偶数结点之和并输出5、释放链表0、退出《数据结构》大作业1 总体要求将程序功能做成菜单,形式如下:(1)创建一条含整数结点的无序链表(2)链表结点的输出(3)链表结点的升序排序(4)分别计算链表中奇数和偶数结点之和并输出(5)释放链表2 开发环境软件环境:Window10,Visual Studio 20173 系统运行效果截图(1)主菜单:(2)创建一条含整数结点的无序链表:3,6,2,5,9(3)链表结点的输出(4)链表结点的升序排序(5)分别计算链表中奇数和偶数结点之和并输出(6)释放链表4 源程序#include<iostream>//头文件using namespace std;//节点数据结构定义struct node{int data;node *next;};//创建一条含整数结点的无序链表node *CreateLinkList(){node *p1, *p2, *head;int n;p2 = NULL;head = NULL;cout <<"正在创建一个无序链表\n";cout <<"请输入一个整数,以-1结束:";cin >> n;//循环输入一个整数,直到数值为-1结束,创建一条无序链表while (n != -1){p1 = new node;p1->data = n;//采用尾插法,新建一个结点并连接到链表尾部if (head == 0){head = p1; p2 = p1; //首结点的建立}else{p2->next = p1; p2 = p1;}cout <<"请输入一个整数,以-1结束:";cin >> n;}if (head != 0) //尾结点p2->next = 0;return(head);}//输出结点void PrintLinkList(const node *head){const node *p;p = head;while (p != NULL){cout <<" "<< (p->data);p = p->next;}cout << endl;}//升序排序void SortLinkList(node *head){node temp;node *p = NULL;node *q = NULL;//判断结点为空或者只有一个结点if (head == NULL || head->next == NULL){return;}//p->next!=NULL为链表倒数第2个结点for (p = head; p->next != NULL; p = p->next) {for (q = p->next; q != NULL; q = q->next){if (p->data > q->data) //升序{ //交换数据域temp.data = q->data;q->data = p->data;p->data = temp.data;}}}return;}//奇数结点和int OddSumLinkList(const node *head){int sum = 0;const node *p;p = head;while (p){//判断数值为是否奇数if (p->data % 2 != 0){sum = sum + p->data;}p = p->next;}return sum;}//偶数结点和int EvenSumLinkList(const node *head){int sum = 0;const node *p;p = head;while (p){//判断是否偶数if (p->data % 2 == 0){sum = sum + p->data; //偶数结点的数值累加}p = p->next;}return sum;}//释放链表void DeleteLinkList(node *head){node *p;while (head){p = head;head = head->next;delete p;}printf("释放成功\n");}void main(){node *head;head = NULL;int select;cout <<"************菜单************"<< endl;cout <<"输入对应选择,执行对应操作"<< endl;cout <<"1.创建一条含整数结点的无序链表"<< endl;cout <<"2.链表结点的输出"<< endl;cout <<"3.链表节点的升序排序"<< endl;cout <<"4.分别计算链表中奇数和偶数结点之和并输出"<< endl;cout <<"5.释放链表"<< endl;cout <<"0.退出"<< endl;while (1){cout <<"\n请输入选择:";cin >> select;switch (select) //判断选项,并执行对应的函数{case 1:{head = CreateLinkList();printf("无序链表创建完成\n");break;}case 2:{printf("输出链表中各结点数据:");PrintLinkList(head);break;}case 3:{SortLinkList(head);printf("升序后:");PrintLinkList(head);break;}case 4:{int oddsum;int evensum;oddsum = OddSumLinkList(head);evensum = EvenSumLinkList(head);printf("奇数和= %d,偶数和= %d\n", oddsum, evensum);break;}case 5:{DeleteLinkList(head);break;}case 0:{cout <<"退出"<< endl;exit(0);}default:{cout <<"输入选项有误,请重新输入:"<< endl;break;}}}}。
数据结构实验作业1:设计程序,输出所有小于等于n(n为一个大于2的正整数)的素数,要求:每行输出10个素数;尽可能采用较优算法。
2:建立顺序表存储数据序列(10,20,30,40,50,60,70,80,90,100),要求:(1)输出顺序表中的所有元素;(2)键盘输入一个数x,如x在表中返回其在表中的位序,不在返回相应提示信息。
(3)删除顺序表中的第8个元素,并输出顺序表中的所有元素;(4)在第5个元素后面插入新元素55,并输出顺序表中的所有元素。
3:建立单链表存储数据(10,20,30,40,50,60,70,80,90,100),要求:(1)头插法或尾插法建立单链表;(2)输出单链表的长度;(3)键盘输入一个值x,输出链表中第一个值为x的元素的位序;(4)键盘输入一个位序值b,在第b个元素之前插入值为500的元素,输出链表的长度及链表所有数据;(5)键盘输入位序值m,删除位序为m的元素,输出链表的长度及链表中所有数据。
4:建立目标串(主串)如:s=“aaaabcdcccc”,模式串(子串)如:t=“abcd”,编写程序,实现顺序串的BF模式匹配算法。
要求:匹配成功,输出位序,匹配不成功,显示相应提示信息。
5:用三元组存储矩阵并实现矩阵转置,要求:输出转置前后矩阵的三元组顺序表。
1 0 0 0 8 1 0 30 0 0 0 4 --- 0 0 03 0 0 0 0 0 0 00 0 08 4 0实验报告书写要求本学期实验报告,每次实验课结束后书写相应实验报告,书写请用实验报告纸,多页请装订或粘贴,写清楚自己的专业班级、学号姓名,于规定时间上交。
(课代表每次将作业按学号排序,并附未交作业同学名单)实验报告主要内容包括下面几个方面:(参考)1、实验题目2、设计思路3、程序调试过程中遇到的问题及解决办法4、附源程序5、实验收获与体会2015-2-20。
东北农业大学网络教育学院数据结构作业题(一)一、选择题(每题2分,共20分)1.在一个长度为n的顺序表的任一位置插入一个新元素的渐进时间复杂度为()。
A、O(n)B、O (n/2)C、O (1)D、O (n2)2.带头结点的单链表first为空的判定条件是()。
A、first == NULL;B、first->link == NULL;C、first->link == first;D、first != NULL;3.在一棵树中,()没有前驱结点。
A、分支结点B、叶结点C、树根结点D、空结点4.在有向图中每个顶点的度等于该顶点的()。
A、入度B、出度C、入度与出度之和D、入度与出度之差5.对于长度为9的有序顺序表,若采用折半搜索,在等概率情况下搜索成功的平均搜索长度为()的值除以9。
A、20B、18C、25D、226.下列程序段的时间复杂度为()。
s=0;for(i=1;i<n;i++)for(j=1;j<n;j++)s+=i*j;A、O (1)B、O (n)C、O (2n)D、O (n2)7.栈是一种操作受限的线性结构,其操作的主要特征是()。
A、先进先出B、后进先出C、进优于出D、出优于进8.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear。
若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为()。
A、(rear-front-1)%nB、(rear-front)%nC、(front-rear+1)%nD、(rear-front+n)%n9.高度为5的完全二叉树中含有的结点数至少为()。
A、16B、17C、31D、3210.如图所示有向图的一个拓扑序列是( )A、ABCDEFB、FCBEADC、FEDCBAD、DAEBCF二、填空题(每空1分,共20分)1.n (n﹥0) 个顶点的无向图最多有条边,最少有条边。
数据结构作业题(总15页) -本页仅作为预览文档封面,使用时请删除本页-第一章1、设n为正整数,利用大"O"记号,将下列程序段的执行时间表示为n的函数。
(1) i=1; k=0;while(i<n){ k=k+10*i;i++;}(2) i=0; k=0;do{k=k+10*i; i++;}while(i<n);(3) i=1; j=0;while(i+j<=n){if (i>j) j++;else i++;}(4)x=n; 编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。
当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。
两个栈均从两端向中间增长。
当向第0号栈插入一个新元素时,使top[0]增1得到新的栈顶位置,当向第1号栈插入一个新元素时,使top[1]减1得到新的栈顶位置。
当top[0]+1 == top[1]时或top[0] == top[1]-1时,栈空间满,此时不能再向任一栈加入新的元素。
试定义这种双栈(Double Stack)结构的类型定义,并实现初始化、判栈空、判栈满、插入、删除算法。
0 m-1【提示】类型定义:#define m 100;Typedef int dsType;试利用算符优先法,画出对如下中缀算术表达式求值时运算符栈和操作数栈的变化。
a +b * (c - d) – e# (#表示结束符)第四章设有模式串T1,T2,T1=‘aaab’,T2=‘abcabaa’,目标串s为‘abc aaabbabcabaacbacba’,(1)计算模式串T1的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。
(2)计算模式串T2的next(j) 和nextval(j)函数的值,并(按照nextval(j) )画出KMP算法匹配过程。
第2章线性表一选择题1.下述哪一条是顺序存储结构的优点?()A.存储密度大B.插入运算方便C.删除运算方便D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
3.线性表是具有n个()的有限序列(n>0)。
A.表元素B.字符C.数据元素D.数据项E.信息项4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
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.线性表在链式存储时,查找第i个元素的时间同i的值成正比B.线性表在链式存储时,查找第i个元素的时间同i的值无关C.线性表在顺序存储时,查找第i个元素的时间同i的值成正比D.线性表在顺序存储时,查找第i个元素的时间同i的值无关11.12.(1)静态链表既有顺序存储的优点,又有动态链表的优点。
数据结构(电子版)一.选择题1.队列是一种特殊的线性表,其特殊在于(C)A.插入和删除在表的不同位置执行B.插入和删除在表的两端位置执行C.插入和删除分别在表的两端执行D.插入和删除都在表的某一端执行2.线性表L在下列(B)情况下适用于使用链表结构实现。
A.不需修改L的结构B.需不断对L进行插入,删除C.需经常修改L中的结点值D.L中含大量结点3.链表不具有的特点是(B)A.插入,删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比4.线性表的长度是指(D)A.顺序存储结构中数组所占的空间大小B.链表中所有结点占用的空间大小C.所能存储的最大的数据元素的个数D.线性表中元素的个数5.链栈与顺序栈相比,比较明显的优点是(B)A.插入操作更加方便B.通常不会出现栈满的情况C.不会出现栈空的情况D.删除操作更加方便6.设rear是指向非空带头结点循环链表的尾指针,则在尾部插入s 所指结点的操作为(C)A.s=rear;rear=rear->nextB.s->next=rear->next;rear->next=s->nextC.s->next=rear->next;rear->next=s;rear=sD.rear->next=s;s->next=rear7.某二叉树的先序和后序正好相反,则该二叉树一定是(B)的二叉树A.为空或者只有一个结点B.高度等于其结点个数C.任一结点无左孩子D.任一结点无右孩子8.对于任何一棵二叉树T,如果其叶子结点为n0,度为2的结点数为n2,则(A)A.n0=n2+1B.n2=n0+1C.n0=2n2+1D.n2=2n0+19.在二叉树排序中,关键字值最小的结点(A)。
A.左孩子链一定为空B.右孩子链一定为空C.左右孩子链均为空D.左右孩子链均不为空10.一个无向网的最小生成树(C)A.只有一棵B.肯定有多棵C.一棵或多棵D.可能一棵也没有11.一组记录排序码为(72,75,71,21,92,5,64),则利用快速排序方法,以第一个记录为基准得到第一趟排序结果为(D)A.(71,21,5,64,72,75,92)B.(64,5,21,71,72,92,75)C.(5,21,64,71,72,75,92)D.(64,5,71,21,72,92,75)12.要连通具有n个顶向的有向图,至少需要(B)条有向边A.n-1B.nC.n+1D.2n13.一个有n个顶点的无向图至多有(A)条边A.n(n-1)/2B.n(n+1)/2C.nD.任意14.在顺序存储的线性表中,第一个元素的存储地址为100,每个元素的长度为5,则第15个元素的存储地址为(C)A.115B.145C.170D.19515.任何一棵二叉树的叶结点在先序,中序和后序遍历序列中的相对次序(B)A.发生改变B.不发生改变C.不能确定D.以上都不对16.一个有序表的关键字序列为{2,5,9,12,32,41,45,62,75,77,82,95,100},当采用折半查找值为82的结点时,比较(C)次后查找成功A. 1B. 2C. 4D.817.二维数组A[10][20]采用行序为主方式存储,每个元素占一个存储单元,并且A[0][0]的存储地址是200,则A[6][12]的地址是(C)A.315B.326C.332D.33818.一组记录的待排序码为(24,84,21,47,15,27,68,35,20),利用快速排序方法,以第一个记录为基准得到的第一趟排序结果为(C)A.15,21,20,24,84,35,68,47,27B.15,20,21,24,27,35,47,68,84C.20,15,21,24,47,27,68,35,84D.20,15,21,24,47,68,27,84,3519.一个有序表为{10,25,33,47,52,63,75,80,96},则折半查找52需要比较(A)次A. 1B. 2C. 3D. 420.设栈初始为空,输入序列为:a,b,c,d,e。
第一章绪论一、选择题1以及它们之间的22.数据构造被形式地定义为(K, R),其中K是1的有限集,R是K上的2有限集。
3.在数据构造中,从逻辑上可以把数据构造分成。
A.动态构造和静态构造B.紧凑构造和非紧凑构造1的存储构造,线性表的链式存储构造是一种21,算法分析的两个主要方面其一是指21,它必须具备输入、输出和2等5个特性。
2 A.可执行性、可移植性和可扩大性 B.可行性、确定性和有穷性C.确定性、有穷性和稳定性D.易读性、稳定性和平安性7.线性表的逻辑顺序及存储顺序总是一致的,这种说法8线性表假设采用链式存储构造时,要求内存中可用存储单元的地址。
A.必须连续的B.局部地址必须连续的C.一定是不续的D连续不连续都可以9.以下的表达中,正确的选项是 C.栈的操作方式是先进先出D.队列的操作方式是先进后出10.每种数据构造都具备三个根本运算:插入、删除和查找,这种说法、和,树形构造和图形构造合称为。
2.在线性构造中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有、、、、。
for( i = 0; i < n; i++)for( j = 0; j < m; j++)A[i][j] = 0;。
i = s = 0;while ( s < n){i ++; /* i = i +1*/s += i; /* s = s + i*/ }。
s = 0;for( i = 0; i < n; i++)for( j = 0; j < n; j++)s += B[i][j]; sum = s;。
i = 1;while ( i <= n )i = i * 3;第一章绪论〔参考答案〕一、选择题:1. A. B。
2. B. D。
3.C。
4. A.B。
〔顺序存储构造的地址在内存中是连续的所以可以通过计算地址的相对变化而实现随机存取,而链式存储构造的存储地址不一定连续,只能通过结点的指针按次序顺序存取〕 5. C.A。
1数据结构课程研究的主要内容包括()()()2一个完整的算法应该具有_____ _____ ______ ______ ______五个特性3数据的逻辑结构可分为_____ ______两大类4数据的逻辑结构是指而存储结构是指5逻辑上相邻的数据元素在物理位置上也相邻是存储结构的特点之一6为了实现随机访问线性结构应该采用存储结构7链式存储结构的主要特点是8算法分析主要从和这两个方面对算法进行分析(1)数据(2)数据元素(3)数据类型(4)数据结构(5)逻辑结构(6)存储结构(7)线性结构(8)非线性结构第二章作业一、判断题(在你认为正确的题后的括号中打√,否则打X)。
1.线性表的逻辑顺序与存储顺序总是一致的。
2.顺序存储的线性表可以按序号随机存取。
3.顺序表的插入和删除操作不需要付出很大的时间代价,因为每次操作平均只有近一半的元素需要移动。
4.线性表中的元素可以是各种各样的,但同一线性表中的数据元素具有相同的特性,因此是属于同一数据对象。
5.在线性表的顺序存储结构中,逻辑上相邻的两个元素在物理位置上并不一定紧邻。
6.在线性表的链式存储结构中,逻辑上相邻的元素在物理位置上不一定相邻。
7.线性表的链式存储结构优于顺序存储结构。
8.在线性表的顺序存储结构中,插入和删除时,移动元素的个数与该元素的位置有关。
9.线性表的链式存储结构是用一组任意的存储单元来存储线性表中数据元素的。
10.在单链表中,要取得某个元素,只要知道该元素的指针即可,因此,单链表是随机存取的存储结构。
二、单项选择题。
1.线性表是( ) 。
(A) 一个有限序列,可以为空; (B) 一个有限序列,不能为空;(C) 一个无限序列,可以为空; (D) 一个无序序列,不能为空。
2.对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。
插入一个元素时平均要移动表中的()个元素。
(A) n/2 (B) n+1/2 (C) n -1/2 (D) n 3.线性表采用链式存储时,其地址( ) 。
(A) 必须是连续的; (B) 部分地址必须是连续的;(C) 一定是不连续的; (D) 连续与否均可以。
4.用链表表示线性表的优点是()。
(A)便于随机存取(B)花费的存储空间较顺序存储少(C)便于插入和删除(D)数据元素的物理顺序与逻辑顺序相同5.下面关于线性表的叙述错误的是( )。
() 线性表采用顺序存储,必须占用一片地址连续的单元;() 线性表采用顺序存储,便于进行插入和删除操作;() 线性表采用链式存储,不必占用一片地址连续的单元;() 线性表采用链式存储,便于进行插入和删除操作;6.设存储分配是从低地址到高地址进行的。
若每个元素占用4个存储单元,则某元素的地址是指它所占用的单元的( )。
A.第1个单元的地址 B.第2个单元的地址C.第3个单元的地址 n第4个单元的地址7.若线性表采用顺序存储结构,每个元素占用4个存储单元,第1个元素的存储地址为100,则第12个元素的存储地址是( )。
A.112 B.144 C.148 0.4128.若长度为n的线性表采用顺序存储结构,在表的第i个位置插入一个数据元素,i的合法值应该是( )。
A.i>O B.i≤n C.1≤i≤n D.1≤i≤n+19.若长度为n的非空线性表采用顺序存储结构,删除表的第i个数据元素,i的合法值应该是( )。
A.i>O B.i≤n C.1≤i≤n D。
1≤i≤n十110.若长度为n的非空线性表采用顺序存储结构,删除表的第i个数据元素,首先需要移动表中( )个数据元素。
A.n-i B.n+i C.n-i+l D.n-i-111.若长度为n的线性表采用顺序存储结构,在表的第i个位置插入一个数据元素,需要移动表中( )个元素。
A.i B.n+i C.n-i+l D.n-i-112.设单链表中结点的结构为typedef struct node { //链表结点定义ElemType data; //数据struct node * Link; //结点后继指针} ListNode;已知指针p所指结点不是尾结点,若在*p之后插入结点*s,则应执行下列哪一个操作()A. s->link = p; p->link = s;B. s->link = p->link; p->link = s;C. s->link = p->link; p = s;D. p->link = s; s->link = p;第三章作业1.栈和队列都是()A.限制存取位置的线性结构B.顺序存储的线性结构C.链式存储的线性结构D.限制存取位置的非线性结构2.若数组s[0..n-1]为两个栈s1和s2的共用存储空间,且仅当s[0..n-1]全满时,各栈才不能进行进栈操作,则为这两个栈分配空间的最佳方案是:s1和s2的栈顶指针的初值分别为()A.:0和n-1B.1和n/2 C.-1和nD.-1和n+13.若进栈序列为a,b,c,则通过入出栈操作可能得到的a,b,c的不同排列个数为( )A.4B.5C.6D.74.如图所示,设输入元素的顺序是A,B,C,D,通过栈的变换,在输出端可得到各种排列。
若输出序列的第一个元素为D,则输出序列为_ ____________。
5.队列中允许进行删除的一端为___ ______。
6.假设以S和X分别表示进栈和退栈操作,则对输入序列a,b,c,d,e进行一系列栈操作SSXSXSSXXX之后,得到的输出序列为___ __。
第五章数组和广义表单项选择题。
(1)空的广义表是指广义表()。
A.深度为0 B.尚未赋值C.不含任何原子元素D.不含任何元素(2)广义表中元素分为()。
A.原子元素B.表元素C.原子元素和表元素D.任意元素(3)广义表的长度是指()。
A.广义表中元素的个数B.广义表中原子元素的个数C.广义表中表元素的个数D.广义表中括号嵌套的层数(4)广义表的深度是指()。
A.广义表中元素的个数B.广义表中原子元素的个数C.广义表中表元素的个数D.广义表中括号嵌套的层数(5)在一个长度为n,包含m个原子元素的广义表中,()。
A.m和n相等B.m不大于n C.m不小于n D.m与n无关(6)广义表A=(( ),(a),(b,(c,d)))的长度为()。
A.2 B.3 C.4 D.5(7)广义表A:(( ),(a),(b,(c,d)))的深度为()。
A.2 B.3 C.4 D.5(8)设有一5阶上三角矩阵A[1..5,1..5],现将其上三角中的元素按列优先顺序存放在一堆数组B[1..15]中。
已知B[1]的地址为100,每个元素占用2个存储单元,则A[3,4]的地址为()A.116 B.118 C.120 D.122第六章树和二叉树一、判断题(在你认为正确的题后的括号中打√,否则打X)。
(1)在树型结构中,每一个结点最多只有一个前驱结点,但可以有多个后继结点。
( )(2)在树型结构中,每—个结点不能没有前驱结点。
( )(3)在度为k的树中,至少有一个度为k的结点。
( )(4)度为2的树是二叉树。
( )(5)在非空完全二叉树中,只有最下面一层的结点为叶结点。
( )(6)在完全二叉树中,没有左孩子的结点一定是叶结点。
( )(7)在完全二叉树中,没有右孩子的结点一定是叶结点。
( )(8)在结点数目一定的前提下,各种形态的二叉树中,完全二叉树具有最小深度。
(9)满二叉树中的每个结点的度不是0就是2。
( )(10)在所有深度相同的二叉树中,满二叉树具有最大结点数目。
( )(11)由二叉树的前序序列和中序序列可以唯一地确定一棵二叉树。
( )(12)由二叉树的中序序列和后序序列可以唯一地确定一棵二叉树。
( )(13)由二叉树的前序序列和后序序列可以唯一地确定一棵二叉树。
( )(14)哈夫曼树中不存在度为1的结点。
( )(15)满二叉树一定是完全二叉树。
( )二、单项选择题。
(1)树型结构最适合用来描述( )。
A.有序的数据元素B.无序的数据元素C.数据元素之间具有层次关系的数据D.数据元素之间没有关系的数据(2)按照二叉树的定义,具有3个结点的二叉树有( )种形态(不考虑数据信息的组合情况)。
A.2 B.3 C.4 D.5(3)若一棵二叉树有10个度为2的结点,则该二叉树的叶结点的个数是( )。
A.9 B.11 C.12 D.不确定(4)若一棵满二叉树有2047个结点,则该二叉树中叶结点的个数为( )。
A.512 B.1024 C.2048 D.4096(5)深度为h的满二叉树的第i层有( )个结点。
(i≤h) ( )A.2i—1 B.2i-1C.2h—1 D.2h-1(6)深度为h的满二叉树共有( )个结点。
(i<h)A.22h-1B.22h-1 C.2h-1 D.2h-1(7)若某完全二叉树的深度为h,则该完全二叉树中至少有( )个结点。
A.2h B.2h-1 c.2h+1 D.2h—1三、填空题。
(1)任何非空树中有且仅有一个结点没有前驱结点,该结点就是树的______ ______。
(2)树的层次定义为____________________。
(3)度为k的树中第i层最多有______________个结点(i≥1)。
(4)深度为h的k叉树最多有_______ _____________个结点。
(5)非空二叉树一共有_______________种基本形态。
(6)非空二叉树中第i层最多有______________个结点。
(7)深度为h的二叉树最多有_____________________________个结点。
(8)具有n个结点的完全二叉树的深度h=____________________。
(9)若二叉树有N0个叶结点,n2个度为2的结点,则N0与n2的关系是________ ______。
(10)若具有n个结点的非空二叉树.树有N0个叶结点,则该二叉树有_______ _____个度为2的结点,___________个度为1的结点。
(11)对具有n个结点的完全二叉树按照层次从上到下,每一层从左到右的次序对所有结点进行编号,编号为i的结点的双亲结点的编号为______________,左孩子的编号为_______________,右孩子的编号为______________。
(12)若具有n个结点的二叉树采用二叉链表存储结构,则该链表中有_____________个指针域,其中有________________个指针域用于链接孩子结点,______________个指针域空闲存放着NULL。
(13)已知二叉树的前序遍历序列为ABDCEFG,中序遍历序列为DBCAFEG,其后序遍历序列为__________。