2014贵州省数据结构(C++)考资料

合集下载

全国2014年4月自考数据结构试题和答案

全国2014年4月自考数据结构试题和答案

6.一棵二叉树的第7层上最多含有的结点数为A.14B.64C.127D.128正确答案:B(2分)7.下列选项为完全二叉树的是正确答案:A(2分)8.用邻接表表示n个顶点e条边的无向图,其边表结点的总数是A. n×eB. eC. 2eD. n+e正确答案:C(2分)9.无向图中所有顶点的度数之和与所有边数之比是A.1/2B.1C.2D.4正确答案:C(2分)10.采用邻接矩阵存储图时,广度优先搜索遍历算法的时间复杂度为A. O(n)B. O(n+e)C. O(n2)D. O(n3)正确答案:C(2分)11.对序列(15,9,7,8,20,-1,4)进行排序,若一趟排序后的结果为(-1,15,9,7,8,20,4),则采用的排序方法是A.归并排序B.快速排序C.直接选择排序D.冒泡排序正确答案:D(2分)12.比较次数与待排序列初始状态无关的排序方法是A.快速排序B.冒泡排序C.直接插入排序D.直接选择排序正确答案:D(2分)13.查找较快,且插入和删除操作也比较方便的查找方法是A.分块查找B.二分查找C.顺序查找D.折半查找正确答案:A(2分)14.下列关于m阶B树的叙述中,错误..的是A.根结点至多有m棵子树B.所有叶子都在同一层次上C.每个非根内部结点至少有棵子树D.结点内部的关键字可以是无序的正确答案:D(2分)15.在散列查找中处理冲突时,可以采用开放定址法。

下列不是开放定址法的是A.线性探查法B.二次探查法C.双重散列法D.拉链法正确答案:D(2分)非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。

二、填空题(本大题共10小题,每小题2分,共20分)16.数据结构研究的内容包括数据的逻辑结构、________和数据的运算。

正确答案:存储结构(2分)17.头指针为L的带头结点的双循环链表,结点的前趋指针域为prior,后继指针域为next,判断该链表为空的条件是________。

贵州大学2014-2015学年第一学期《数据结构与算法》B卷

贵州大学2014-2015学年第一学期《数据结构与算法》B卷

贵州大学2014-2015学年第一学期考试试卷 B数据结构与算法注意事项:1. 请考生按要求在试卷装订线内填写姓名. 学号和年级专业。

2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。

一. 选择题(共10分,每题1分)1. 在数据结构中,从逻辑上可以把数据结构分成( C )。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构2.对顺序存储的线性表,设其长度为n ,在任何位置上删除操作都是等概率的,则删除一个元素大约要移动表中元素的个数是( D )。

A .n ∕2 B .(n+1)∕2 C .n-1 D .(n-1)∕2 3.以下的叙述中,正确的是(B )。

A.线性表的顺序存储结构优于链式存储结构B.二维数组是其数据元素为线性表的线性表C.栈的操作方式是先进先出D.队列的操作方式是先进后出 4.在表达式中进行括号匹配检验时,采用( B )数据结构最佳。

A .线性表的顺序存储结构B .栈C .线性表的链式存储结构D .队列5.循环队列的最大容量为MAXSIZE ,队尾指针是rear ,对头指针是front ,则队空的条件是 ( B )。

A. Q. front=maxsizeB. Q. rear=Q. frontC. Q. rear=maxsizeD. (Q. rear+1)%maxsize=Q. front6.在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行( C )。

A. s->next = p->next; p->next=s;B. p->next = s->next; s->next = p;C. q->next = s; s->next = p;D. p->next = s; s->next = q;7.AOE网是一种( D )A.有向图B.无向图C.无向无环图D.有向无环图8.一棵深度为k的平衡二叉树,其每个非终端结点的平衡因子均为0,则该树共有( B )个结点。

2014年贵州省数据结构试题及答案试题及答案

2014年贵州省数据结构试题及答案试题及答案

4、在平衡二叉树中插入一个结点后造成不平衡,设最低的不平衡结点为A,并已知A的左孩子平衡因子为0,右孩子平衡因子为1,则应该做( )型调整以使其平衡
A LL B LR C RL D RR
5、如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用 B 。
15、数据结构中,从逻辑上可以把数据结构分成(?)。
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
16、下列选项中,其平均查找性能与基于二叉排序树的查找相当的是
A.二分查找 B.顺序查找 C.分块查找 D.索引顺序查找
12、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法 B.数据元素的类型
C.数据元素之间的关系 D.数据的存储方法
13、在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行 B 操作与链表的长度有关。
B.删除单链表中的最后一个元素
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
42、n个顶点的强连通图中至少含有( )。
A.n—l条有向边 B.n条有向边
C.n(n—1)/2条有向边 D.n(n一1)条有向边
43、广义表A=(x,((y),((a)),A))的深度是
19、长度为n的顺序表,删除位置i上的元素(0≤i≤n一1),需要移动的元素个数为
A.n—i B.n—i—l C.i D.i+1
20、在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行 B 操作与链表的长度有关。
A.删除单链表中的第一个元素

数据结构(第4版)习题及实验参考答案数据结构复习资料完整版(c语言版)

数据结构(第4版)习题及实验参考答案数据结构复习资料完整版(c语言版)

数据结构(第4版)习题及实验参考答案数据结构复习资料完整版(c语言版)数据结构基础及深入及考试习题及实验参考答案见附录结论1、数据的逻辑结构是指数据元素之间的逻辑关系。

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

2、数据的物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。

它依赖于计算机。

存储结构可分为4大类:顺序、链式、索引、散列3、抽象数据类型:由用户定义,用以表示应用问题的数据模型。

它由基本的数据类型构成,并包括一组相关的服务(或称操作)。

它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机)。

4、算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入转换为输出的计算步骤。

5、在数据结构中,从逻辑上可以把数据结构分成(C)A、动态结构和表态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构6、算法的时间复杂度取决于(A)A、问题的规模B、待处理数据的初态C、问题的规模和待处理数据的初态线性表1、线性表的存储结构包括顺序存储结构和链式存储结构两种。

2、表长为n的顺序存储的线性表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为(E),删除一个元素需要移动的元素的个数为(A)。

A、(n-1)/2B、nC、n+1D、n-1E、n/2F、(n+1)/2G、(n-2)/23、“线性表的逻辑顺序与存储顺序总是一致的。

”这个结论是(B)A、正确的B、错误的C、不一定,与具体的结构有关4、线性表采用链式存储结构时,要求内存中可用存储单元的地址(D)A、必须是连续的B、部分地址必须是连续的C一定是不连续的D连续或不连续都可以5、带头结点的单链表为空的判定条件是(B)A、head==NULLB、head->ne某t==NULLC、head->ne某t=headD、head!=NULL6、不带头结点的单链表head为空的判定条件是(A)A、head==NULLB、head->ne某t==NULLC、head->ne某t=headD、head!=NULL7、非空的循环单链表head的尾结点P满足(C)A、p->ne某t==NULLB、p==NULLC、p->ne某t==headD、p==head8、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是(B)A、O(1)B、O(n)C、O(n2)D、O(nlog2n)数据结构(第4版)习题及实验参考答案9、在一个单链表中,若删除p所指结点的后继结点,则执行(A)A、p->ne某t=p->ne某t->ne某t;B、p=p->ne某t;p->ne某t=p->ne某t->ne某t;C、p->ne某t=p->ne某t;D、p=p->ne某t->ne某t;10、在一个单链表中,若在p所指结点之后插入所指结点,则执行(B)A、->ne某t=p;p->ne某t=;B、->ne某t=p->ne某t;p->ne某t=;C、->ne某t=p->ne某t;p=;D、p->ne某t=;->ne某t=p;11、在一个单链表中,已知q是p的前趋结点,若在q和p之间插入结点,则执行(C)A、->ne某t=p->ne某t;p->ne某t=;B、p->ne某t=->ne某t;->ne某t=p;C、q->ne某t=;->ne某t=p;D、p->ne某t=;->ne某t=q;12、在线性结构中,第一个结点没有前趋结点,其余每个结点有且只有1个前趋结点。

贵州省考研计算机科学与技术复习资料数据结构重要算法解析

贵州省考研计算机科学与技术复习资料数据结构重要算法解析

贵州省考研计算机科学与技术复习资料数据结构重要算法解析一、引言数据结构是计算机科学与技术领域中最为基础和重要的概念之一。

在贵州省考研计算机科学与技术的复习中,深入理解数据结构以及其中的重要算法是必不可少的。

本文将对数据结构中的一些重要算法进行解析,并提供相关的复习资料。

二、排序算法排序算法是数据结构中最经典的算法之一,对于提高计算机程序的效率至关重要。

以下是几种常用的排序算法:1. 冒泡排序冒泡排序是一种简单直观的排序算法。

它通过比较相邻的元素,将较大的元素逐步交换至右侧。

时间复杂度为O(n^2)。

2. 插入排序插入排序是一种将数组分为有序和无序两部分的排序算法。

它从无序部分选择一个元素,并将其插入到有序部分的适当位置。

时间复杂度为O(n^2)。

3. 快速排序快速排序采用了分治的思想,将数组划分为两个子数组,分别对这两个子数组进行排序。

它的平均时间复杂度为O(nlogn)。

4. 归并排序归并排序也是一种分治算法,将数组划分为两个子数组,对这两个子数组分别进行排序,然后再将其合并。

时间复杂度为O(nlogn)。

三、查找算法查找算法是数据结构中常用的一类算法,用于在给定的数据集合中寻找目标元素的位置或关键信息。

以下是几种常见的查找算法:1. 顺序查找顺序查找是最基本的查找算法,它从数据集合的第一个元素开始逐个比较,直到找到目标元素或遍历完整个数据集合。

时间复杂度为O(n)。

2. 二分查找二分查找也称为折半查找,它要求数据集合必须有序。

它通过将数据集合对半分割,并与目标元素进行比较,逐步缩小查找范围,最终找到目标元素。

时间复杂度为O(logn)。

3. 哈希查找哈希查找利用了哈希函数将目标元素映射到一个位置,从而实现快速查找。

它的平均查找时间复杂度为O(1)。

四、树和图的算法树和图是数据结构中更为复杂和高级的结构,它们在计算机科学与技术的应用中起着重要作用。

以下是与树和图相关的一些算法:1. 深度优先搜索(DFS)深度优先搜索是在树或图中以深度为优先的搜索算法。

全国2014年10月自学考试《数据结构》试题和标准答案【在最后】

全国2014年10月自学考试《数据结构》试题和标准答案【在最后】

大题共4小题,每小题5分。

共20分)
请在答题卡上作答。

26.设Q是有N个存储空间的循环队列,初始状态front=rear=0,约定指针rear指向的单元始终为空,回答下列问题。

请根据最优二叉树的基本原理,采用类C语言,描述你所设计的成绩判定过程。

29.给定有向无环图G如题29图所示,写出G的5种不同的拓扑排序序列。

的单链表定义如下,其中freq域记录本结点被访问的次数,初值为0,单链表始终以freq 序。

函数f3l完成的功能是:查找给定关键字所在结点,若查找成功,则该结点的freq域加值调整结r旨位置。

请将空白处(1)~(3)补充完整。

在答题卡上作答。

回答下列问题。

五、算法设计题(本大题共l小题,共“l0分) 请在答题卡上作答。

34.已知带头结点的单链表类型定义如下:
- 10 -。

2014贵州省学习数据库基础

2014贵州省学习数据库基础

1、约瑟夫环问题(Josephus问题)是指编号为1、2、…,n的n(n>0)个人按顺时针方向围坐成一圈,现从第s个人开始按顺时针方向报数,数到第m个人出列,然后从出列的下一个人重新开始报数,数到第m的人又出列,…,如此重复直到所有的人全部出列为止。

现要求采用循环链表结构设计一个算法,模拟此过程。

#include<stdlib.h>typedef int datatype;typedef struct node{datatype data;struct node *next;}listnode;typedef listnode *linklist;void jose(linklist head,int s,int m){linklist k1,pre,p;int count=1;pre=NULL;k1=head; /*k1为报数的起点*/while (count!=s) /*找初始报数起点*/{pre=k1;k1=k1->next;count++;}while(k1->next!=k1) /*当循环链表中的结点个数大于1时*/{ p=k1; /*从k1开始报数*/count=1;while (count!=m) /*连续数m个结点*/{ pre=p;p=p->next;count++;}pre->next=p->next; /*输出该结点,并删除该结点*/printf("%4d",p->data);free(p);k1=pre->next; /*新的报数起点*/}printf("%4d",k1->data); /*输出最后一个结点*/free(k1);}main(){linklist head,p,r;int n,s,m,i;printf("n=");scanf("%d",&n);printf("s=");scanf("%d",&s);printf("m=",&m);scanf("%d",&m);if (n<1) printf("n<0");else{/*建表*/head=(linklist)malloc(sizeof(listnode)); /*建第一个结点*/head->data=n;r=head;for (i=n-1;i>0;i--) /*建立剩余n-1个结点*/{ p=(linklist)malloc(sizeof(listnode));p->data=i;p->next=head;head=p;}r->next=head; /*生成循环链表*/jose(head,s,m); /*调用函数*/}}2、连通图的生成树包括图中的全部n个顶点和足以使图连通的n-1条边,最小生成树是边上权值之和最小的生成树。

数据结构C语言版期末考试试题(有答案)

数据结构C语言版期末考试试题(有答案)

“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( B)。

A. HL=ps p一>next=HLB. p一>next=HL;HL=pC. p一>next=Hl;p=HL;D. p一>next=HL一>next;HL一>next=p;2.n个顶点的强连通图中至少含有(B)。

A.n—l条有向边B.n条有向边C.n(n—1)/2条有向边D.n(n一1)条有向边3.从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。

A.O(1)B.O(n)C.O(1Ogzn)D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( D )。

A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为(B)参数,以节省参数值的传输时间和存储参数的空间。

A.整形B.引用型C.指针型D.常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( A )。

A.O(n) B.O(1)C.O(n2) D.O(10g2n)二、填空题(每空1分,共28分)1.数据的存储结构被分为顺序结构链接结构索引结构散列结构四种。

2.在广义表的存储结构中,单元素结点与表元素结点有一个域对应不同,各自分别为值域和子表指针域。

3.——中缀表达式 3十x*(2.4/5—6)所对应的后缀表达式为————。

4.在一棵高度为h的3叉树中,最多含有—(3h一1)/2—结点。

5.假定一棵二叉树的结点数为18,则它的最小深度为—5—,最大深度为—18—·6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定—小于—该结点的值,右子树上所有结点的值一定—大于—该结点的值。

7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层—向上—调整,直到被调整到—堆顶—位置为止。

2014年数据结构和程序设计真题

2014年数据结构和程序设计真题

程序设计部分读程序,写结果1.#include<iostream>Using namespace stdMain(){int i=2 ,j=4,m,n;m = ++i + j++;//i=3 j=5 m=3+4=7n = (++i)+(++j)+m;//i=4,j=6,n=4+6+7=17cout <<i<<j<<m<<n;//46717return 0;}2. #include<iostream>Using namespace stdmain(){int a=1,b=2,c=3,d=4,y=10;switch(y){case1:a++;break;default:d=1;case2:b++;break;//d=1,b=3case4:c++;break;}Cout <<a<<b<<c<<d<<endl;//1331Return 0;}3. #include<iostream>Using namespace stdMain(){Int i=0,sum=0;for(;;){i+=2;if(i>10){ cout <<”sum=”<<sum; break;}if(i==8) continue;sum+=I;//0+2+4+6+10=22}Return 0;}4. #include<iostream>Using namespace std;Int &f1 (int &a );Int f2 (int b );Main(){Int x=10;Int y=f1(x);Int z=f2(x);cout <<x<<endl//20cout <<y<<endl;//20cout <<z<<endl;//40return 0;}Int &f1(int &a){a+=a;}Int f2(int b){b+=b;}}#include<iostream>Using namespace stdClass A{private:int a;static int b;public :A(int i ){a=i;b+=i;}Void f();void A::f(){cout <<”a=”<<a<<endl;cout <<”b=”<<b<<endl; }Private A::b=0;Main(){A obj1(10);//obj1.f();A obj2(15);obj2.f();obj1.f();return 0;}}a=10b=10a=15b=25a=10b=255. #include<iostream>Using namespace stdClass A{Private:int a;public:A(){ cout<<”A`s default constactour call n”;};A(int i) {a= i; cout<< ”A`sconstractour called. n”};Void print(){ cout<<a<< ’’, ’’;}~A() { cout<< ”A`s destractor called. n”}Int Geta{ return a;}}Class B{Public:AB(){ cout<< ”B`s default constactour called. n”};B(int i, int j, int k ){ A(i),aa(j)cout << B`s ”c onstractor called.\n”;} ~B(){ cout <<”B’s destractor called.\n”}Void print();Private:Int b;A aa;}Void B::print(){A::print();Cout <<b<<aa.Geta()<<endl;}Main(){B bb[2] = {B(10,15,20),B(1,2,3)};For(int i=0;i<2;i++){bb[i].print(); }}。

2014贵州省数据结构(C++)考试题库

2014贵州省数据结构(C++)考试题库

1、串的逻辑结构与( D )的逻辑结构不同。

A)线性表 B)栈C)队列 D)树2、数据结构中,在逻辑上可以把数据结构分成( B )。

A)动态结构和静态结构B)线性结构和非线性结构C)紧凑结构和非紧凑结构D)内部结构和外部结构3、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a??11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( B )。

A)13 B)33 C)18 D)404、下列各种数据结构中属于线性结构的有( A )。

A)栈 B) 二叉树C) 广义表 D) 图5、线性表的链接实现有利于( A )运算。

A)插入 B)读元素C)查找 D)定位6、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。

A)上三角矩阵 B) 稀疏矩阵C) 对角矩阵 D) 对称矩阵7、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( B )。

A)9 B)11 C)15 D)不能确定8、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用( D )存储方式最节省运算时间。

A) 单链表 B) 仅有头指针的单循环链表C) 双链表 D) 仅有尾指针的单循环链表9、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。

这样的排序方法是( A )。

A)直接选择排序 B)直接插入排序C)快速排序 D)起泡排序10、下列各种数据结构中属于线性结构的有( A )。

A)栈 B) 二叉树C) 广义表 D) 图11、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。

A)顺序表B)双链表C)带头结点的双循环链表 D)单循环链表。

数据结构(C语言版)考研复习题

数据结构(C语言版)考研复习题

数据结构(C语言版)考研复习题第1 页共19 页第一章绪论1.1 简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。

1.2 常用的存储表示方法有哪几种?1.3 算法的时间复杂度仅与问题的规模相关吗?1.4 有时为了比较两个同数量级算法的优劣,须突出主项的常数因子,而将低次项用大"O"记号表示。

例如,设T1(n)=1.39nlgn+100n+256=1.39nlgn+O(n), T2(n)=2.0nlgn-2n=2.0lgn+O(n), 这两个式子表示,当n足够大时T1(n)优于T2(n),因为前者的常数因子小于后者。

请用此方法表示下列函数,并指出当n足够大时,哪一个较优,哪一个较劣?函数大"O"表示优劣(1) T1(n)=5n22-3n+60lgn 5n22+O(n)(2) T2(n)=3n22+1000n+3lgn 3n22+O(n)(3) T3(n)=8n22+3lgn 8n22+O(lgn)(4) T4(n)=1.5n2+6000nlgn 1.5n2+O(nlgn)第二章线性表2.1 试描述头指针、头结点、开始结点的区别、并说明头指针和头结点的作用。

2.2 何时选用顺序表、何时选用链表作为线性表的存储结构为宜?2.3 为什么在单循环链表中设置尾指针比设置头指针更好?2.4 下述算法的功能是什么?LinkList Demo(LinkList L){ // L 是无头结点单链表ListNode *Q,*P;if(L&&L->next){Q=L;L=L->next;P=L;while (P->next) P=P->next;P->next=Q; Q->next=NULL;}return L;}// Demo2.5设线性表的n个结点定义为(a0,a1,...a n-1),重写顺序表上实现的插入和删除算法:InsertList 和DeleteList.2.6 设顺序表L是一个递减有序表,试写一算法,将x插入其后仍保持L的有序性。

(完整word版)数据结构(c语言版)课后习题答案完整版资料

(完整word版)数据结构(c语言版)课后习题答案完整版资料

第1章绪论5.选择题:CCBDCA6.试分析下面各程序段的时间复杂度。

(1)O(1)(2)O(m*n)(3)O(n2)(4)O(log3n)(5)因为x++共执行了n—1+n—2+……+1= n(n—1)/2,所以执行时间为O(n2)(6)O(n)第2章线性表1.选择题babadbcabdcddac2.算法设计题(6)设计一个算法,通过一趟遍历在单链表中确定值最大的结点。

ElemType Max (LinkList L ){if(L—〉next==NULL) return NULL;pmax=L-〉next;//假定第一个结点中数据具有最大值p=L-〉next—>next;while(p != NULL ){//如果下一个结点存在if(p->data > pmax—>data) pmax=p;p=p->next;}return pmax-〉data;(7)设计一个算法,通过遍历一趟,将链表中所有结点的链接方向逆转,仍利用原表的存储空间.void inverse(LinkList &L) {// 逆置带头结点的单链表Lp=L-〉next;L->next=NULL;while (p){q=p—>next;// q指向*p的后继p->next=L—>next;L—>next=p; // *p插入在头结点之后p = q;}}(10)已知长度为n的线性表A采用顺序存储结构,请写一时间复杂度为O(n)、空间复杂度为O(1)的算法,该算法删除线性表中所有值为item的数据元素.[题目分析]在顺序存储的线性表上删除元素,通常要涉及到一系列元素的移动(删第i个元素,第i+1至第n个元素要依次前移)。

本题要求删除线性表中所有值为item的数据元素,并未要求元素间的相对位置不变。

因此可以考虑设头尾两个指针(i=1,j=n),从两端向中间移动,凡遇到值item的数据元素时,直接将右端元素左移至值为item的数据元素位置。

贵州大学2014-2015学年第一学期《数据结构与算法》A卷

贵州大学2014-2015学年第一学期《数据结构与算法》A卷

贵州大学2014-2015学年第一学期考试试卷 A数据结构与算法注意事项:1. 请考生按要求在试卷装订线内填写姓名.学号和年级专业。

2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。

4. 满分100分,考试时间为120分钟。

一.单项选择题(共10分,每题1分)1. 顺序存储结构的优势是( )。

(A).利于插入操作 (B).利于删除操作 (C).利于顺序访问 (D).利于随机访问2.算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作,为了使得算法中的每一条指令有确切的含义,算法应该具有( )。

(A).有穷性 (B).可行性 (C).确定性 (D).正确性3.在长度为n 的线性表中插入一个元素,假定在线性表的任何位置上插入元素是等概率的,则插入一个元素大约需要移动线性表中元素的个数是( )。

(A).(n-1)/2 (B).n/2 (C).(n+1)/2 (D).n+14.在下列单链表中,已知p 为单链表存储结构中指向结点a 的指针,q 为单链表存储结构中指向结点x 的指针,删除结点x 的操作为( )。

p(A ).p->next=q->next; q=p->next; e=q->data; free(q); (B ).q=p->next; p->next=q->next; free(q); e=q->data; (C ).e=q->data; q=p->next; p->next=q->next; free(q); (D ).q=p->next; p->next=q->next; e=q->data; free(q);5.假设栈S=(a 1,a 2,…,a n ),其中a 1为栈底元素,a n 为栈顶元素,那么出栈序列中第i 个元素是( )。

数据结构(C语言版)知识点复习资料

数据结构(C语言版)知识点复习资料

数据结构复习资料一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。

2. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。

3. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。

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

5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。

6.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有 1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。

7. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有 1 个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。

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

9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。

10. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。

11. 一个算法的效率可分为时间效率和空间效率。

12. 在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。

13. 线性表中结点的集合是有限的,结点间的关系是一对一的。

14. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动 n-i+1 个元素。

15. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动 n-i 个元素。

16. 在顺序表中访问任意一结点的时间复杂度均为 O(1) ,因此,顺序表也称为随机存取的数据结构。

17. 顺序表中逻辑上相邻的元素的物理位置必定相邻。

单链表中逻辑上相邻的元素的物理位置不一定相邻。

18.在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。

2014贵州省数据库考试含答案入门

2014贵州省数据库考试含答案入门

1、已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>}写出G的拓扑排序的结果。

G拓扑排序的结果是:V1、V2、V4、V3、V5、V6、V72、(1)p->rchild (2)p->lchild (3)p->lchild (4)ADDQ(Q,p->lchild) (5)ADDQ(Q,p->rchild)25. (1)t->rchild!=null (2)t->rchild!=null (3)N0++ (4)count(t->lchild) (5)count(t->rchild)26. .(1)top++ (2) stack[top]=p->rchild (3)top++ (4)stack[top]=p->lchild27. (1)*ppos // 根结点(2)rpos=ipos (3)rpos–ipos (4)ipos (5)ppos+13、#define maxsize 栈空间容量void InOutS(int s[maxsize])//s是元素为整数的栈,本算法进行入栈和退栈操作。

{int top=0; //top为栈顶指针,定义top=0时为栈空。

for(i=1; i<=n; i++) //n个整数序列作处理。

{scanf(“%d”,&x); //从键盘读入整数序列。

if(x!=-1) // 读入的整数不等于-1时入栈。

if(top==maxsize-1){printf(“栈满\n”);exit(0);}else s[++top]=x; //x入栈。

贵州大学2014-2015学年第一学期《数据结构与算法》A卷

贵州大学2014-2015学年第一学期《数据结构与算法》A卷

贵州大学2014-2015学年第一学期考试试卷 A数据结构与算法注意事项:1. 请考生按要求在试卷装订线内填写姓名.学号和年级专业。

2. 请仔细阅读各种题目的回答要求,在规定的位置填写答案。

3. 不要在试卷上乱写乱画,不要在装订线内填写无关的内容。

4. 满分100分,考试时间为120分钟。

一.单项选择题(共10分,每题1分)1. 顺序存储结构的优势是( )。

(A).利于插入操作 (B).利于删除操作 (C).利于顺序访问 (D).利于随机访问2.算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作,为了使得算法中的每一条指令有确切的含义,算法应该具有( )。

(A).有穷性 (B).可行性 (C).确定性 (D).正确性3.在长度为n 的线性表中插入一个元素,假定在线性表的任何位置上插入元素是等概率的,则插入一个元素大约需要移动线性表中元素的个数是( )。

(A).(n-1)/2 (B).n/2 (C).(n+1)/2 (D).n+14.在下列单链表中,已知p 为单链表存储结构中指向结点a 的指针,q 为单链表存储结构中指向结点x 的指针,删除结点x 的操作为( )。

p(A ).p->next=q->next; q=p->next; e=q->data; free(q); (B ).q=p->next; p->next=q->next; free(q); e=q->data; (C ).e=q->data; q=p->next; p->next=q->next; free(q); (D ).q=p->next; p->next=q->next; e=q->data; free(q);5.假设栈S=(a 1,a 2,…,a n ),其中a 1为栈底元素,a n 为栈顶元素,那么出栈序列中第i 个元素是( )。

贵州大学2014-2015学年第一学期《数据结构与算法》B卷参考答案

贵州大学2014-2015学年第一学期《数据结构与算法》B卷参考答案

贵州大学2014-2015学年第一学期考试试卷 B数据结构与算法评分标准及参考答案一、选择题(共15分,每题1分)1、C2、D3、B4、B5、B6、C7、D8、B9、A 10、D二、填空题(共14分,每空1分)1. 特殊、栈顶2. 有序序列、后缀表达式3. 894. n(n-1)/2、n-15. 队尾、队头6. 2i+2、2i+3、i+17. ALBECDWX、ALCBERWX8. 2三、应用题(共56分)1.(10分)(1) 哈夫曼树如下,每画对一个叶子,给0.5分,结构1分,共5分F G DEA BHC(2)WPL=0.02*5+ 0.04*5+0.06*4+0.08*4+0.1*4+0.3*2+0.4*1=2.26(1分)(3)A: 1000 B:1001 C:11 D:001 E:01 F:0000 G:0001 H:101(每个0.5分,共4分)2.(9分)(1)Hash表(2分)(2)0123456789101112(3)查找成功的平均查找长度:(2分) (5*1+2*2+1*3+1*7)/9=19/9查找不成功的平均查找长度:(2分)(3+2+1+1+1+1+10+9+8+7+6+5+4)/13=58/13 3.(9分) (1)、构造(3分)(2)、10 14 15 19 20 21 22 56(3分) (3)、折半查找过程的判定树(3分)4.(10分)(1) 邻接矩阵:(4分)⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞6020105053010010401V 2V 5V 3V 4V 6V 1V 2V 3V 4V 5V 6V(2) 求最短路径过程:(6分)则从顶点V 0到其余各顶点的最短路径为:534120V V V V V V →→→→→(1分) 5.(9分)(1)A →C →B →D →E →F 或A →C →B →E →D →F (1分) (2) 工程的工期为43天(1分)(3) 每个事件的最早开始时间ve[i]、最迟开始时间vl[i],以及每个活动最早开始时间e[k]、最迟开始时间l[k]如下表(5分)则关键活动为:15、4、19、5 (1分) 关键活动图为:(1分)6.(8分)(1) (写一行0.5分,共4分){46,58,45,15,35,90,24,62} {46,58,45,15,35,90,24,62} {45,46,58,15,35,90,24,62} {15,45,46,58, 35,90,24,62} {15,35,45,46,58, 90,24,62} {15,35,45,46,58, 90,24,62} {15, 24,35,45,46,58,90,62} {15,24,35,45,46,58 ,62,90}(2)二叉排序树如下(写一个结点0.5分,共4分)4645153524589062四、 算法设计(共20分)1.(12分)Status ListInsert_L(LinkList &L , int i, ElemType e) { //在带头结点的单链表L 中第i 个位置之前插入元素e p=L ;j=0;while(p&&j<i-1) //寻找第i-1个结点{p=p->next;++j;}if(!p||j>i-1) return ERROR; //i小于1或者大于表长加1s=(LinkList)malloc(siazeof(LNode)); //生成新结点s->data=e;s->next=p->next;p->next=s;return OK;} …………………………………………………………………………………………….6分.Status ListDelete_L(LinkList &L, int i, ElemType &e){//在带头结点的单链表L中,删除第i个元素,并用e返回其值p=L;j=0;while(p->next&&j<i-1) //寻找第i个结点,并令p指向其前前驱{p=p->next;++j;}if(!(p->next)&&j<i-1) return ERROR; //删除位置不合理q=p->next; p->next=q->next; //删除并释放结点e=q->data;free(q);return OK;} …………………………………………………………………………………………….6分.2.(8分)Status DispLeaf2(Bitree T) {//输出二叉树的所有度为1的结点if (T!=NULL) {if (T->lchild!=NULL && T->rchild!=NULL)printf("%c ",T->data);else {DispLeaf(T->lchild);DispLeaf(T->rchild);}}} …………………………………………………………………………………………….8分.。

2014贵州大学831真题

2014贵州大学831真题

句中的表达式类型所决定。 B、调用该函数时
的主调函数类型所决定。 C、调用该函数时系
统临时决定。 D、在定义该函数时所指定的函
数类型所决定。
15、若有以下语句:
int a[3],*p=a;
则 &a[2]-p 的值是( )。
A、1
B、2
C 、 3 16、
数据结构在计算机内存中的表示是指(
)。
D、4
A、数据结构 C、数据的存储结构
if(*p<*q)
{
p = swap(&a,&b);
}
if(*p==*q)
(5)
;
printf(“两数从大到小依次是%d,%d”,*p,*q);
}
第 6页 共 8 页
int *swap(int *a, int *b) {
(6)
temp;
temp = a;
a = b; b = temp;
return a;
D、p->next=s; s->next=p;
25、已知一棵二叉树的前序遍历结果为 ABCDEF,中序遍历结果为 CBAEDF,
则后序遍历结果为( )。
A、CBEFDA
B、FEDCBA
C、CBEDFA
D、不定
二、名词解释(本题共 6 个小题,每小题 3 分,共 18 分)
1、算法
2、栈
3、拓扑排序
4、二叉树
B、char s[10]=”China”;
C、char s[10]; strcpy(s,”China”);
D、char s[10]; s=”China”;
10、以下 4 个关于 C 语言的结论中,错误的是( )。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、二叉树第i(i≥1)层上至多有( C )结点。

A)2i B)2i C)2i-1 D)2i-1
2、在数据结构中,从逻辑上可以把数据结构分为( C )。

A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
3、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。

这样的排序方法是( A )。

A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
4、链式存储的存储结构所占存储空间( A )。

A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
5、二叉树第i(i≥1)层上至多有( C )结点。

A)2i B)2i C)2i-1 D)2i-1
6、在数据结构中,从逻辑上可以把数据结构分为( C )。

A)动态结构和静态结构 B)紧凑结构和非紧凑结构
C)线性结构和非线性结构 D)内部结构和外部结构
7、广义表head(((a,b),(c,d)))的运算结果为( A )。

A)(a,b) B)(c,d)
C)空表 D)((a,b),(c,d))
8、栈进行插入和删除操作的特点是( A )。

A)LIFO B)FIFO
C)FCFS D)HPF
9、n个顶点的强连通图至少有( A )条边。

A)n B)n+1 C)n-1 D)n(n-1)
10、下面程序段的时间复杂度是( A )。

s =0;
for( i =0; i<n; i++)
for(j=0;j<n;j++)
s +=B[i][j];
sum = s ;
A) O(n2) B) O(n)
C) O(m*n) D)O(1)
11、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为( B )。

A) rear=rear->next; B) front=front->next;
C) rear=front->next; D) front=rear->next ;
12、下列各种数据结构中属于线性结构的有( A )。

A)栈 B) 二叉树
C) 广义表 D) 图
13、数据结构中,在逻辑上可以把数据结构分成( B )。

A)动态结构和静态结构
B)线性结构和非线性结构
C)紧凑结构和非紧凑结构
D)内部结构和外部结构
14、线性表的链接实现有利于( A )运算。

A)插入 B)读元素
C)查找 D)定位
15、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。

A)顺序表B)双链表C)带头结点的双循环链表D)单循环链表
16、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。

A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
17、栈进行插入和删除操作的特点是( A )。

A)LIFO B)FIFO
C)FCFS D)HPF
18、链式存储的存储结构所占存储空间( A )。

A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
19、二叉树第i(i≥1)层上至多有( C )结点。

A)2i B)2i C)2i-1 D)2i-1
20、设给定问题的规模为变量n,解决该问题的算法所需时间为Tn=O(f(n)),Tn表示式中记号O表示( A )。

A)一个数量级别 B)一个平均值
C)一个最大值 D)一个均方值
21、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为( B )。

A) rear=rear->next; B) front=front->next;
C) rear=front->next; D) front=rear->next ;。

相关文档
最新文档