数据结构练习题第三章栈、队列和数组习题及答案.pdf
《数据结构练习题第三章栈、队列和数组习题及答案.pdf》由会员分享,可在线阅读,更多相关《数据结构练习题第三章栈、队列和数组习题及答案.pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三章 栈、队列和数组 一、名词解释:1.栈、栈顶、栈底、栈顶元素、空栈 2.顺序栈 3.链栈 4.递归 5.队列、队尾、队头 6.顺序队 7.循环队 8.队满 9.链队 10.随机存储结构 11.特殊矩阵 12.稀疏矩阵 13.对称方阵 14.上(下)三角矩阵 二、填空题:1.栈修改的原则是_或称_,因此,栈又称为_线性表。在栈顶进行插入运算,被称为_或_,在栈顶进行删除运算,被称为_或_。2.栈的基本运算至少应包括_、_、_、_、_五种。3.对于顺序栈,若栈顶下标值 top=0,此时,如果作退栈运算,则产生“_”。4.对于顺序栈而言,在栈满状态下,如果此时在作进栈运算,则会发生“_”。5.
2、一般地,栈和线性表类似有两种实现方法,即_实现和_实现。6.top=0 表示_,此时作退栈运算,则产生“_”;top=sqstack_maxsize-1表示_,此时作进栈运算,则产生“_”。7.以下运算实现在顺序栈上的初始化,请在_处用适当的句子予以填充。int InitStack(SqStackTp*sq)_;return(1);8.以下运算实现在顺序栈上的进栈,请在_处用适当的语句予以填充。Int Push(SqStackTp*sq,DataType x)if(sp-top=sqstack_maxsize-1error(“栈满”);return(0);else_:_=x;return(1)
3、;9.以下运算实现在顺序栈上的退栈,请在_用适当句子予以填充。Int Pop(SqStackTp*sq,DataType*x)if(sp-top=0)error(“下溢”);return(0);else*x=_;_;return(1);10.以下运算实现在顺序栈上判栈空,请在_处用适当句子予以填充。Int EmptyStack(SqStackTp*sq)if(_)return(1);else return(0);11.以下运算实现在顺序栈上取栈顶元素,请在_处用适当句子予以填充。Int GetTop(SqStackTp*sq,DataType*x)if(_)return(0);else*x=_
4、;return(1);12.以下运算实现在链栈上的初始化,请在_处用请适当句子予以填充。Void InitStacl(LstackTp*ls)_;13.以下运算实现在链栈上的进栈,请在处用请适当句子予以填充。Void Push(LStackTp*ls,DataType x)LstackTp*p;p=malloc(sizeof(LstackTp);_;p-next=ls;_;14以下运算实现在链栈上的退栈,请在_处用请适当句子予以填充。Int Pop(LstackTp*ls,DataType*x)LstackTp*p;if(ls!=NULL)p=ls;*x=_;ls=ls-next;_;retu
5、rn(1);else return(0);15.以下运算实现在链栈上读栈顶元素,请在_处用请适当句子予以填充。Int Get Top(LstackTp*ls,DataType*x)if(ls!=NULL)_;return(1);else return(0);16.必须注意,递归定义不能是“循环定义”。为此要求任何递归定义必须同时满足如下条件:被定义项在定义中的应用(即作为定义项的出现)具有_;被定义项在最小“尺度”上的定义不是_的。17 队列简称_。在队列中,新插入的结点只能添加到_,被删除的只能是排在_的结点。18队列以线性表为逻辑结构,至少包括_、_、_、_ _、五种基本运算。19顺序队的
6、出、入队操作会产生“_”。20 以下运算实现在循环队上的初始化,请在_处用适当句子予以填充。Void InitCycQueue(CycqueueTp*sq)_;sq-rear=0;21.以下运算实现在循环队上的入队列,请在_处用请适当句子予以填充。Int EnCycQueue(CycquereTp*sq,DataType x)if(sq-rear+1)%maxsize=_)error(“队满”);return(0);else _;_ _;return(1);22.以下运算实现在循环队上的出队列,请在_处用适当句子予以填充。Int OutCycQueue(CycquereTp*sq,DataTy
7、pe*x)if(sq-front=_)error(“队空”);return(0);else _;_;return(1);23.以下运算实现在循环队上判队空,请在_处用适当句子予以填充。Int EmptyCycQueue(CycqueueTp sq)if(_)return(1);else return(0);24.以下运算实现在循环队上取队头,请在_处用适当句子予以填充。Int GetHead(CycqueueTp sq,DataType*x)if=_return(0);else*x=_;return(1);25.链队在一定范围内不会出现_的情况。当=试,队中无元素,此时_。26以下运算实现在链
8、队上的初始化,请在_处用适当句子予以填充。void InitQueue(QueptrTp*lp)LqueueTp*p;p=(LqueueTp*)malloc(sizeof(LqueueTp);_;lq-rear=p;(lq-front)-next=_;27.以下运算实现在链队上的入队列,请在_处用适当句子予以填充。Void EnQueue(QueptrTp*lq,DataType x)LqueueTp*p;p=(LqueueTp*)malloc(sizeof(LqueueTp);_=x;p-next=NULL;(lq-rear)-next=_;_;28.以下运算实现在链队上的出队列,请在_处用
9、适当句子予以填充。int OutQueue(QuetrTp*lq,DataType*x)LqueueTp*s;if(lq-front=lq-rear)erroe(“队空”);return(0);else s=(lq-front)-next;_=s-data;(lq-front)-next=_;if(s-next=NULL)lq-rear=lq-front;free(s);return(1);29.以下运算实现在链队上判队空,请在_处用适当句子予以填充 int EmptyQueue(QueptrTp*lq)if(_)return(1);else return(0);30.以下运算实现在链队上读队
10、头元素,请在_处用适当句子予以填充。Int GetHead(QueptrTp lq,DataType*x)LqueueTp*p;if=return(0);else_;_=p-data;return(1);31一般地,一个 n 维数组可视为其数据元素为_维数组的线性表。数组通常只有_和_两种基本运算。32,通常采用_存储结构来存放数组。对二维数组可有两种存储方法:一种是以_为主序的存储方式,另一种是以_为主序的存储方式。C 语言数组用的是以_序为主序的存储方法;FORTRAN 语言用的是以_序为主序的存储方法 33需要压缩存储的矩阵可分为_矩阵和_矩阵两种。34对称方阵中有近半的元素重复,若为每
11、一对元素只分配一个存储空间,则可将 n2 个元素压缩存储到_个元素的存储空间中。35假设以一维数组 M(1:n(n+1)/2)作为 n 阶对称矩阵 A 的存储结构,以行序为主序存储其下三角(包括对角线)中的元素,数组 M 和矩阵 A 间对应的关系为_。36上三角矩阵中,主对角线上的第 t 行(1=tj 时,aij=c,c 存放在 M_中。37下三角矩阵的存储和对称矩阵类似。MK和 aij的对应关系是_。38 基于三元组的稀疏矩阵转置的处理方法有两种,以下运算按照矩阵 A 的列序来进行转置,请在_处用适当的句子用以填充。Trans_Sparmat(SpMatrixTp a,SpMatrixTp*
12、b)(*b).mu=;(*b).nu=;(*b).tu=;if q=1;for(col=1;_;col+)for(p=1;p=;p+)if(_=col)(*b).dataq.i=p.j;(*b).dataq.j=p.i;(*b).dataq.v=p.v;_;39基于三元组的稀疏矩阵转置的处理方法有两种,以下计算按照矩阵 A 的三元组的次序进行转置,请在_处用适当的句子用以填充。Fast_Trans_Sparmat(SpMatrixTp a,SpMatrixTp*b)(*b).mu=;(*b).nu=;(*b).tu=;if for(col=1;_;col+)numcol=0;for(t=1;t
13、=a,tu;t+)numt.j+;cpot1=1;for(col=2;col=;col+)cpotcol=_;for(p=1;pnext;free(p)。43设有二为数组 int M1020(注:m 为 0.10,n 为 0.20),每个元素(整数)栈两个存储单元,数组的起始地址为 2000,元素 M510的存储位置为_,M819的存储值为_。44在具有 n 个单元的循环队列中,队满时共有_个元素。45_可以作为实现递归函数调用的一种数据结构。46数组 M 中每个元素的长度是 3 个字节,行下标 i 从 1 到 8,列下标 j 从 1 到 0,从首的址 EA 开始连续存放在存储其中。若按行方式
14、存放,元素 M85的起始地址为_;若按列优先方式存放,元素 M85的地址为_。47对带有头结点的列队列 lq,判定队列中只有一个数据元素的条件是_。48二维数组 M 的成员是 6 个字符(每个字符栈一个存储单元)组成的串,行下标 i的范围从 0 到 8,列下标 j 的范围从 1 到 10,则存放 M 至少需要_个字节;M 的第 8 列和第 5 行共占_个字节;若 M 按行方式存储,元素 M85的起始地址与当M 按列优先方式存储时的_元素的起始地址一致。三、单项选择题 1在以下栈的基本运算中,不是加工型运算的是 ()lnitStack(S)Push(S,X)Pop(S)empty(S)2.以下说
15、法正确的是 ()因链栈本身没有容量限制,故在用户内存空间的范围内不会出现栈满情况 因顺序栈本身没有容量限制,故在用户内存空间的范围内不会出现栈满情况 对于链栈而言,在栈满状态下,如果此时再作进栈运算,则会发生“上溢”对于顺序栈而言在栈满状态下如果此时再作迸栈运算,则会发生“下溢”。3在以下队列的基本运算中,不是加工型运算的是 ()InitQueue(Q)EnQueue(Q,X)OutQueu(Q,X)GetHead(Q,x)4.顺序队列的人队操作应为 ()=+1 =x=x =+1=+1)%maxsize;=x sqrear=x =+1)%maxsize 5.循环队列的人队操作应为 ()=+1
16、=x=x =+1=+1)%maxsize =x=x =+1)%maxsize 6.顺序队列的出队操作为 ()=+1)%maxsize =+1=+1)%maxsize=+1 7.循环队列的出队操作为 ()=+1)%maxsize=+1=+)%maxsize=+1 8.循环队列的队满条件为 ()+1)%mazsize=+1)%maxsize;+1%maxsize=+1 sq.(rear+1)%maxsize=9.循环队列的队空条件为 ()+1)%maxsize=+1)%maxsize+)%maxsize=+1+1)%maxsize=10.数组的数据元素类型 DataType 可根据实际需要而定义。
17、以下说法完全正确的是 ()数组的读运算可以读取一个数据元素整体,写运算只能修改一个数据元素的一部分 数组的读、写运算可以读取或修改一个数据元素的一部分或一个整体 数组的读、写运算只能读取或修改一个数据元素的一部分 数组的读、写运算只能读取或修改一个数据元素整体 11对于以行序为主序的存储结构来说,在数组 Ac1 d1,c2 d2中,c1 和 d1 分别为 数组 A 的第一个下标的上、下界,c2d2分别为第二各下标的上、下界,每个数据元素占 K 个存储单元,二维数组中任一元素 ai,j的存储位置可由()式确定.Loci,j=(d2-c2+1)(i-c1)+(j-c2)*k Loci,j=locc
18、1,c2+(d2-c2+1)(i-c1)+(j-c2)*k Loci,j=Ac1,c2+(d2-c2+1)(i-c1)+(j-c2)*k Loci,j=loc0,0+(d2-c2+1)(i-c1)=(j-c2)*k 12 对于 C 语言的二维数组 DataType Amn,每个数据元素占 K 个存储单元,二维数组中任意元素 ai,j 的存储位置可由()式确定.Loci,j=Am,n+(n+1)*i+j*k Loci,j=loc0,0+(m+n)*i+j*k Loci,j=loc0,0+(n+1)*i+j*k Loci,j=(n+1)*i+j*k 13.线性表的顺序存储结构是一种()的存储结构,
19、线性表的链式存储结构是一种()的存储结构。随机存取 顺序存储 14如果以链表作为栈的存储结构,则退栈操作是 ()必须判别栈是否满 必须判别栈是否空 判别栈元素的类型 对栈不做任何操作 15 对于基于三元组的稀疏矩阵转置的处埋方法以下说法正确的是 ()按照矩阵 A 的列序来进行转置,算法的时间复杂度为 0(nu+tu)按照 A 的三元组的次序进行转置,算法的时间复杂度为 O(nu*tu)按照矩阵 A 的列序来进行转置的方法称快速转置 按照矩阵 A 的列序进行转置,对于 tunext=s s-next=Top-next;Top-next=s s-next=Top;Top=s s-next=Top;
20、Top=Top-next 24.从栈顶指针为 Top 的链栈中删除一个结点,并将被删节点的值保存到 x 中,其操作步骤为()x=Top-data;Top=Top-next Top=Top-next;x=Top-data x=Top;Top=Top-next x=Top-data 25.在一个链队中,若 f,r 分别为队首、队尾指针,则插入 s 所指结点的操作为()f-next=c;f=s r-next=s;r=s s-next=r;r=s s-next=f;f=s 26 常对数组进行的两种基本操作是 ()建立与删除 索引与修改 查找与修改 查找与索引 27链栈与顺序栈相比,有一个比较明显的优点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 练习题 第三 队列 数组 习题 答案
限制150内