资源预览内容
第1页 / 共20页
第2页 / 共20页
第3页 / 共20页
第4页 / 共20页
第5页 / 共20页
第6页 / 共20页
第7页 / 共20页
第8页 / 共20页
第9页 / 共20页
第10页 / 共20页
亲,该文档总共20页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
精心整理第1章绪论习题1 简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。2 试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。3 简述逻辑结构的四种基本关系并画出它们的关系图。4 存储结构由哪两种基本的存储方法实现5 选择题(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.链栈(6) 以下数据结构中,()是非线性数据结构A.树B.字符串C.队D.栈6.试分析下面各程序段的时间复杂度。(1) x=90;y=100;while(y0)if(x100)x=x-10;y-;elsex+;(2) for(i=0;in;i+)for(j=0;jm;j+)aij=O;(3) s=0;fori=0;i n ;i+)for(j=0;j n;j+)s+=Bij;sum=s;(4) i=1; while(i=n) i=i*3;(5) x=0;for(i=1;i n;i+) for(j=1;jnext=p-next;p-next=s-next;D. s-next=p-next;p-next=s;(14) 在双向链表存储结构中,删除p所指的结点时须修改指针()。A. p-next_prior=p_prior;p_prior-next=p-next;B. p_next=p-next-next;p-next-prior=p;C. p-prior-next=p;p-prior=p-prior-prior;D. p-prior=p-next-next;p-next=p-prior-prior;(15) 在双向循环链表中,在p指针所指的结点后插入 q所指向的新结点,其修改指针的操作是()A. p-next=q;q-prior=p;p-next-prior=q;q-next=q;B. p-next=q;p-next-prior=q;q-prior=p;q-next=p-next;C. q-prior=p;q-next=p-next;p-next-prior=q;p-next=q;D. q-prior=p;q-next=p-next;p-next=q;p-next-prior=q;2.算法设计题(1) 将两个递增的有序链表合并为一个递增的有序链表。要求结果链表仍使用原来两个链表的存储空间 不另外占用其它的存储空间。表中不允许有重复的数据。voidMergeList_L(Li nkList&La,Li nkList&Lb,L i nkList&Lc)pa=La-n ext;pb=Lb-n ext;并将删除结点的值保存到x中,则应执行操作()。B. top=top-link;x=top-linkD. x=top-link ;Lc=pc=La; 3C想摘除栈顶结点,A. x=top-data;top=top-linkC. x=top;top=top-link;(5) 设有一个递归算法如下性表的链式存储结构D.栈)。in tfact(i ntn) 3C0(11) 用链接方式存储的队列,在进行删除运算时(A.仅修改头指针B.仅修改尾指针C.头、尾指针都要修改D.头、尾指针可能都要修改(12) 循环队列存储在数组A0.m中,则入队时的操作为(=rear+=(rear+1)%(m-1)=(rear+1)% =(rear+1)%(m+1)(13) 最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是(A.(rear+1)% n= =frontC. rear+1=frontD.(rear-l)%n=front(14) 栈和队列的共同点是()。A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点(15) 一个递归算法必须包括()。A.递归部分B.终止条件和递归部分C.迭代部分D.终止条件和迭代部分(2) 回文是指正读反读均相同的字符序列,如 abba”和abdba”均是回文,但good”不是回文。试写 一个算法判定给定的字符向量是否为回文。(提示:将一半字符入栈)根据提示,算法可设计为:09090 0 9 0 09000M-1实现循环队列,其中M是队列长度。设队头指针front和队尾指针rear,约定front 指向队头元素的前一位置,rear指向队尾元素。定义 front=rear 时为队空,(rear+1)%m=fro nt为队满。约定队头端入队向下标小的方向发展,队尾端入队向下标大的方向发展。(1) #defineM队列可能达到的最大长度typedefstructelemtpdataM;int front,rear;cycqueue;(2) elemtpdelqueue(cycqueueQ)C100,1.100 ,设每个数据元素占 2个存储单元,基地址为10,则LOC5,5=()。A. 808B. 818C . 1010D. 1020(7) 设有数组Ai,j,数组的每个元素长度为3字节,i的值为1到8,j的值为1到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A5,8的存储首地址为()。A. BA+141B. BA+180 C . BA+222D BA+225(8) 设有一个10阶的对称矩阵 A,采用压缩存储方式,以行序为主存储,an为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。A. 13B. 33C . 18D. 40(9) 若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一 维数组B1.(n(n+1)/2 中,则在B中确定a (ij )的位置k的关系为()。A. i*(i-1)/2+j B. j*(j-1)/2+iC. i*(i+1)/2+jD. j*(j+1)/2+i(10) AN,N是对称矩阵,将下面三角(包括对角线)以行序存储到一维数组TN(N+1)/2中,则对任一 上三角元素aij 对应Tk的下标k是()。A. i(i-1)/2+jB. j(j-1)/2+i C. i(j-i)/2+1D. j(i-1)/2+1(11) 设二维数组 A1.m ,1.n(即m行n列)按行存储在数组B1.m*n中,则二维数组元素 Ai,j 在 一维数组B中的下标为()。A. (i-1)*n +jB . (i-1)*n+j-1C. i*(j-1)D. j*m+i-1(12) 数组A0.4,-1.-3,5.7中含有元素的个数()。A. 55B. 45C . 36D. 16(13) 广义表 A=(a,b,(c,d),(e,(f,g),贝U Head(Tail(Head(Tail(Tail(A)的值为()。A. (g)B . (d)C . cD. d(14) 广义表(a,b,c,d) 的表头是(),表尾是()。A. aB. ()C . (a,b,c,d) D. (b,c,d)(15) 设广义表L=(a,b,c),贝U L的长度和深度分别为()。A. 1 和 1B. 1 和 3C . 1 和 2D. 2 和 3(1) 已知模式串t= abcaabbabcab 写出用KMP法求得的每个字符对应的next和nextval函数值。模式串t的next和nextval值如下:j12t串abcaabbabcabn extj0n extvalj0(2) 设 目标为 t= “ abcaabbabcabaacbacba ” ,模式为 p= “ abcabaa” 计算模式p的naxtval函数值; 不写出算法,只画出利用KMP算法进行模式匹配时每一趟的匹配过程。 p的nextval函数值为 0110132。 (p的next函数值为 0111232 )。 利用KMP改进的nextval)算法,每趟匹配过程如下:第一趟匹配: abcaabbabcabaacbacbaabcab(i=5,j=5)第二趟匹配: abcaabbabcabaacbacbaabc(i=7,j=3)第三趟匹配: abcaabbabcabaacbacbaa(i=7,j=1)第四趟匹配: abcaabbabcabaacbacba(成功)abcabaa(i=15,j=8)(3)数组A中,每个元素 Ai,j的长度均为32个二进位,行下标从-1到9,列下标从1到11,从首地址S 开始连续存放主存储器中,主存储器字长为16位。求: 存放该数组所需多少单元 存放数组第4列所有元素至少需多少单元 数组按行存放时,元素A7,4的起始地址是多少 数组按列存放时,元素A4,7的起始地址是多少每个元素32个二进制位,主存字长16位,故每个元素占2个字长,行下标可平移至1到11。(1)242(2)22(3)s+182( 4)s+142(4)请将香蕉banana用工具H() Head(),T() Tail()从L中取出。L=(apple,(ora nge,(strawberry,(ba nan a),peach),pear)H ( H (T( H (T( H( T( L)(5)写一个算法统计在输入字符串中各个不同字符出现的频度并将结果存入文件(字符串中的合法字符为 A-Z这26个字母和0-9这10个数字)。void Count ()是字符串输入结束标志I nvertStore(A); Ai+=ch;0 00 m,1.n含有 m*n个整数。(yes/no); 写一个算法判断a中所有元素是否互不相同输出相关信息,找到一对相等的元素,就可结论为不是互不 每个元素要同本行后面的元素比较一次(下面
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号