2014广东省数据结构与算法(必备资料)
2014年广东省数据结构试题及答案(必备资料)
46、链表不具备的特点是 A 。
A.可随机访问任一结点 B.插入删除不需要移动元素
C.不必事先估计存储空间 D.所需空间与其长度成正比
47、在决定选取何种存储结构时,一般不考虑 A 。
3、在循环双链表的p所指的结点之前插入s所指结点的操作是 D 。
A.p->prior = s;s->next = p;p->prior->next = s;s->prior = p->prior
B.p->prior = s;p->prior->next = s;s->next = p;s->prior = p->prior
D.依附于对应顶点v的边数
44、若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用
D 存储方式最节省运算时间。
A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表
45、数据结构中,从逻辑上可以把数据结构分成(?)。
A.二分查找 B.顺序查找 C.分块查找 D.索引顺序查找
35、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进 C.分析算法的易读性和文档性
A.用n个结点构造的哈夫曼树是唯一的
B.哈夫曼树中只有度为0或度为2的结点
C.树中两个权值最小的结点可能是兄弟结点
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
21、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
数据结构与算法试题(1)
一、选择题1.在逻辑上可以把数据结构分成(A)A.线性结构和非线性结构B.动态结构和静态结构C.紧凑结构和非紧凑结构D.内部结构和外部结构2. 单链表中各结点之间的地址(C)A.必须连续B.部分必须连续C.不一定连续D.以上均不对3.在一个长度为n的顺序表中向第i个元素(0<i<=n+1)之前插入一个新元素时,需向后移动(B)个元素。
A、n-iB、n-i+1C、n-i-1D、i4. 插入和删除操作只能在一端进行的线性表,称为(C)。
A.队列B.线性表C.栈D.循环队列5、队列是仅允许在()进行插入,而在()进行删除。
(A)A.队尾,队首B.队尾,队尾C.队首,队尾D.队首,队首6.链表适合于(A)查找。
A.顺序B.二分C.随机D.顺序或二分7.数据的基本单位是(A)。
A.数据元素B.数据结构C.数据项D.数据对象8.下列哪个不是算法的特性(B)。
A.有穷性B.可数性C.可行性D.确定性9.在表长为n的顺序表中进行线性查找,它的平均查找长度为(B)。
A.ASL=nB.ASL=(n+1)/2C.ASL=n+1D.ASL=log2n10. 一个线性表第一个元素的存储地址是320,每个元素的长度为3,则第五个元素的地址是(C)。
A.311B.328C.332D.31311.设front、rear分别为循环双向链表结点的左指针和右指针,则指针P所指的元素是双循环链表L的尾元素的条件是(D)。
A.P==LB.P->front==LC.P==NULLD.P->rear==L12. 已知P为单链表中的非首尾结点,删除P结点的后继结点Q的语句为(A)。
A.P->NEXT=Q->NEXT;FREE(Q);B.Q->NEXT=P; FREE(Q);C.Q->NEXT=P->NEXT;FREE(Q);D.P->NEXT=S;S->NEXT=P;13.循环队列SQ队满的条件是(B)。
2014年广东海洋大学软件专业数据结构
2014年广东海洋大学软件专业数据结构一、选择题:1.一棵二叉树,其叶子节点数目为20,有10个度为1的结点,求这棵树结点的总数。
A.50B.60C.59D.492.除了输入和输出以外,算法还有哪三个特征:有穷性,可行性,确定性3.每个元素的大小为6,使用二维数组储存这些元素,A[0][0]的地址为100,A[2][4]的地址为:C语言行优先4.哈希表的长度m=14,哈希函数H(key)=key MOD 13,哈希表中已有元素:H(15) = 2 H(38) = 12 H(61) = 9 H(58) = 10如果使用二次探测再散列方式解决冲突,则关键字48的地址是:A.8B.3C.10D.95. 使用二叉链表的方式储存二叉树,有n个结点的二叉树有多少个空指针域?A. nB.2nC.n-1D.n+16. 二叉树的中序遍历序列是:DBEAFCG7. 连通图有n个结点,它的生成树有多少条边?A. nB. n + 1C.n – 1D. 2n8. 有向完全图有n个结点,最多有多少条边?A. nB. n + 1C. n-1D. n(n-1)9. 二分查找法适用于:a. 链式储存b. 顺序储存c. 链式储存,并且元素有序d. 顺序储存,并且元素有序10. 拓扑排序不可能出现的情况:A. 12345B. 12435C.21435D. 24135二、填空题:1.下面代码段的时间复杂度:While (I <= n) {K += 10 * I;I++} O(n)2.深度为h的二叉树最少有__h___个结点3.三种基本的数据结构:线性结构,树形结构和________图形结构____4.只能在同一端进行插入和删除操作的线性表是_____栈_______5.二叉树的第i 层最多有多少个结点2^(i-1)6.由树转变为二叉树,其__根结点的右__子树必定为空子树7.顶点表示事件,边表示活动的的图叫______AOE-网______8.只含有度为0和度为k的树,一共有n个结点,求这棵树的叶子结点的数量(k n 已知)叶子节点数l = n - (n-1)/k=n-(kn-k)9.二叉树的平衡因子b 满足_绝对值小于等于1___ 时,二叉树平衡。
数据结构与算法试卷
一、填空题(每空2分,共12分)1. 数据结构被形式地定义为(D, R ),其中D 是数据元素的有限集合,R 是D上的__数据元素之间的关系______ 有限集合。
2.向一个长度为n 的线性表中删除第i 个元素(1≤i ≤n)时,需向前移动___n-i_____个元素。
3. 假设以S 和X 代表进栈和出栈操作,则对输入序列a,b,c,d,e 进行一系列操作SSXSXSSXXX 之后,得到的输出序列为___bceda_____。
4. 已知循环队列的存储空间为数组A[21],front 指向队头元素的前一个位置,rear 指向队尾元素,假设front 和rear 的值分别为8和3,则该队列的长度为___16_____。
5.在有序表A[0…17]中,采用折半查找法查找关键字等于A[7]的元素,需比较元素的下标依次为 8 3 5 6 7 。
6. 在堆排序、快速排序和归并排序方法中,稳定的排序方法是 归并排序 。
二、单项选择题(每小题2分,共40分)1. 数据结构中,与所使用的计算机无关的是数据的( C )结构。
A.存储B. 物理C. 逻辑D.物理和存储2. 算法分析的两个主要方面是( A )A. 空间复杂性和时间复杂性B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性3.在n 个结点的顺序表中,算法的时间复杂度是O (1)的操作是( A )A.访问第i 个结点(1≤i ≤n )和求第i 个结点的直接前驱(2≤i ≤n )B.在第i 个结点后插入一个新结点(1≤i ≤n )C.删除第i 个结点(1≤i ≤n )D. 将n 个结点从小到大排序 4. 线性表L在( B )情况下适用于使用链式结构实现。
A.需经常修改L中的结点值B.需不断对L进行删除插入C.L中含有大量的结点D.L中结点结构复杂 5. 经过以下栈运算后,x 的值是( A )InitStack(s); Push(s, 'a');Push(s, 'b');Pop(s,x);GetTop(s,x); A.a B.b C.1 D.06. 循环队列存储在数组A[0…m]中,则入队时的操作为( D )。
2014年912数据结构及参考答案
四,1(1) Element *Union(Element *A,Element *B)
{ Element *p[2],*Head=NULL,*Temp1,*Temp2; p[0]=A;p[1]=B;int i; if(p[0]==NULL) i=1; else i=0; while(p[i]!=NULL)
}
三 1,Pt==NULL Pt->next=Top Top=Pt Top!=NULL Top=Top->next
2,Head==NULL Pt2=Pt1 return Head Pt->Coef=Pt->Coef * P2.Coef Pt->Expn=Pt->Expn + P2.Expn
3,root->LChild==NULL && root->RChild==NULL Leaves(root->LChild)+Leaves(root->RChild) root !=NULL PostOrder(root->LChild) PostOrder(root->RChild)
2 int * Insert(BSNode *&root, int key)
{ if(root==NULL) { root=new BSNode(); if(root==NULL) return 2; root->key=key; root->LChild=root->RChild=NULL; return 0; } else if(key<root->key) Insert(root->LChild, key); else if(key>root->key) Insert(root->RChild, key); else return 1;
数据结构与算法详解
数据结构与算法详解数据结构和算法是计算机科学中非常重要的两个概念。
数据结构是一种数据组织和存储方式,它能够提高数据的访问和处理效率。
算法是一种解决问题的具体步骤,可以优化问题的解决方式。
在计算机科学中,数据结构和算法被广泛应用于软件开发、数据处理、计算机通信等方面。
本文将深入介绍数据结构和算法的相关内容。
一、常用数据结构常见的数据结构有数组、链表、堆、栈、队列、散列表、二叉树等。
下面依次介绍这些数据结构的特点。
1. 数组数组是一种线性结构,由一组相同类型的元素组成并按照一定的顺序存储。
数组具有下标定位和随机访问等优点,适用于元素较少且随机查询比较频繁的情况。
2. 链表链表也是一种线性结构,由一系列不同类型的数据节点组成。
每个节点包含一个数据项和指向下一个节点的指针。
链表具有灵活的插入和删除操作,适用于元素较多且数据分散的情况。
3. 堆堆是一种特殊的树形结构,它满足父节点的键值总是大于或等于子节点的键值。
堆常用于优先队列、排序等场景中。
4. 栈栈是一种特殊的线性结构,它的数据存储在一个简单的表中,只有在表的一端进行插入和删除操作。
栈的操作是“后进先出”,适用于回溯、表达式求值等场景中。
5. 队列队列也是一种特殊的线性结构,它的数据存储在一个简单的表中,只能从表的一端进行插入,从另一端进行删除。
队列的操作是“先进先出”,适用于排队、广度优先搜索等场景中。
6. 散列表散列表也叫哈希表,是一种根据键值(key)而直接访问到值(value)的数据结构。
散列表通过哈希函数将键映射到表中位置,从而实现快速查找。
7. 二叉树二叉树是一种特殊的树形结构,每个节点最多有两个子节点。
二叉树包含前序遍历、中序遍历、后序遍历等方法,适用于排序、查找等场景中。
二、常用算法常见的算法包括排序、搜索、图算法等。
下面依次介绍这些算法的特点。
1. 排序算法排序算法是将一组未排序的数据按照一定的规则进行排序的算法。
常见的排序算法有冒泡排序、快速排序、插入排序、选择排序、归并排序、计数排序、桶排序、基数排序等。
2014广东省分析数据库的考试题目高级
1、二路插入排序是将待排关键字序列r[1..n]中关键字分二路分别按序插入到辅助向量d[1..n]前半部和后半部(注:向量d可视为循环表),其原则为,先将r[l]赋给d[1],再从r[2] 记录开始分二路插入。
编写实现二路插入排序算法。
2、(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、若第n件物品能放入背包,则问题变为能否再从n-1件物品中选出若干件放入背包(这时背包可放入物品的重量变为s-w[n])。
若第n件物品不能放入背包,则考虑从n-1件物品选若干件放入背包(这时背包可放入物品仍为s)。
若最终s=0,则有一解;否则,若s<0或虽然s>0但物品数n<1,则无解。
(1)s-w[n],n-1 //Knap(s-w[n],n-1)=true(2)s,n-1 // Knap←Knap(s,n-1)4、两棵空二叉树或仅有根结点的二叉树相似;对非空二叉树,可判左右子树是否相似,采用递归算法。
int Similar(BiTree p,q) //判断二叉树p和q是否相似{if(p==null && q==null) return (1);else if(!p && q || p && !q) return (0);else return(Similar(p->lchild,q->lchild) && Similar(p->rchild,q->rchild))}//结束Similar5、冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)请给出上浮和下沉过程交替的冒泡排序算法。
2014广东省C语言版入门
1、有一种简单的排序算法,叫做计数排序(count sorting)。
这种排序算法对一个待排序的表(用数组表示)进行排序,并将排序结果存放到另一个新的表中。
必须注意的是,表中所有待排序的关键码互不相同,计数排序算法针对表中的每个记录,扫描待排序的表一趟,统计表中有多少个记录的关键码比该记录的关键码小,假设针对某一个记录,统计出的计数值为c,那么,这个记录在新的有序表中的合适的存放位置即为c。
(1) (3分)给出适用于计数排序的数据表定义;(2) (7分)使用Pascal或C语言编写实现计数排序的算法;(3) (4分)对于有n个记录的表,关键码比较次数是多少?(4) (3分)与简单选择排序相比较,这种方法是否更好?为什么?2、假设以I和O分别表示入栈和出栈操作。
栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由I和O组成的序列,称可以操作的序列为合法序列,否则称为非法序列。
(15分)(1)A和D是合法序列,B和C 是非法序列。
(2)设被判定的操作序列已存入一维数组A中。
int Judge(char A[])//判断字符数组A中的输入输出序列是否是合法序列。
如是,返回true,否则返回false。
{i=0; //i为下标。
j=k=0; //j和k分别为I和字母O的的个数。
while(A[i]!=‘\0’) //当未到字符数组尾就作。
{switch(A[i]){case‘I’: j++; break; //入栈次数增1。
case‘O’: k++; if(k>j){printf(“序列非法\n”);exit(0);}}i++; //不论A[i]是‘I’或‘O’,指针i均后移。
}if(j!=k) {printf(“序列非法\n”);return(false);}else {printf(“序列合法\n”);return(true);}}//算法结束。
3、我们可用“破圈法”求解带权连通无向图的一棵最小代价生成树。
2014年广东省数据整理摘要
1、假设以邻接矩阵作为图的存储结构,编写算法判别在给定的有向图中是否存在一个简单有向回路,若存在,则以顶点序列的方式输出该回路(找到一条即可)。
(注:图中不存在顶点到自己的弧)有向图判断回路要比无向图复杂。
利用深度优先遍历,将顶点分成三类:未访问;已访问但其邻接点未访问完;已访问且其邻接点已访问完。
下面用0,1,2表示这三种状态。
前面已提到,若dfs(v)结束前出现顶点u到v的回边,则图中必有包含顶点v和u的回路。
对应程序中v的状态为1,而u是正访问的顶点,若我们找出u的下一邻接点的状态为1,就可以输出回路了。
void Print(int v,int start ) //输出从顶点start开始的回路。
{for(i=1;i<=n;i++)if(g[v][i]!=0 && visited[i]==1 ) //若存在边(v,i),且顶点i的状态为1。
{printf(“%d”,v);if(i==start) printf(“\n”); else Print(i,start);break;}//if}//Printvoid dfs(int v){visited[v]=1;for(j=1;j<=n;j++ )if (g[v][j]!=0) //存在边(v,j)if (visited[j]!=1) {if (!visited[j]) dfs(j); }//ifelse {cycle=1; Print(j,j);}visited[v]=2;}//dfsvoid find_cycle() //判断是否有回路,有则输出邻接矩阵。
visited数组为全局变量。
{for (i=1;i<=n;i++) visited[i]=0;for (i=1;i<=n;i++ ) if (!visited[i]) dfs(i);}//find_cycle2、设t是给定的一棵二叉树,下面的递归程序count(t)用于求得:二叉树t中具有非空的左,右两个儿子的结点个数N2;只有非空左儿子的个数NL;只有非空右儿子的结点个数NR和叶子结点个数N0。
数据结构与算法复习题+参考答案
数据结构与算法复习题+参考答案一、单选题(共100题,每题1分,共100分)1、设栈的顺序存储空间为 S(1:m),初始状态为 top=0。
现经过一系列正常的入栈与退栈操作后,top=m+1,则栈中的元素个数为A、m+1B、mC、不可能D、0正确答案:C2、小张完成了毕业论文,现需要在正文前添加论文目录以便检索和阅读,最优的操作方法是:A、利用 Word 提供的“手动目录”功能创建目录。
B、不使用内置标题样式,而是直接基于自定义样式创建目录。
C、将文档的各级标题设置为内置标题样式,然后基于内置标题样式自动插入目录。
D、直接输入作为目录的标题文字和相对应的页码创建目录。
正确答案:C3、赵老师在 Excel 中为 400 位学生每人制作了一个成绩条,每个成绩条之间有一个空行分隔。
他希望同时选中所有成绩条及分隔空行,最快捷的操作方法是:A、直接在成绩条区域中拖动鼠标进行选择B、单击成绩条区域的某一个单元格,然后按Ctrl+A 组合键两次C、单击成绩条区域的第一个单元格,然后按Ctrl+Shift+End 组合键D、单击成绩条区域的第一个单元格,按下Shift 键不放再单击该区域的最后一个单元格正确答案:C4、设某棵树的度为 3,其中度为 3,1,0 的结点个数分别为 3,4,15。
则该树中总结点数为A、35B、不可能有这样的树C、30D、22正确答案:C5、在商场购物时,顾客可以购买不同的商品,而同样的商品也销售给不同的顾客,则实体顾客和实体商品之间的联系是A、一对一B、一对多C、多对多D、多对一正确答案:C6、在具有 2n 个结点的完全二叉树中,叶子结点个数为A、n/2B、n-1C、nD、n+1正确答案:C7、PowerPoint 演示文稿包含了 20 张幻灯片,需要放映奇数页幻灯片,最优的操作方法是:A、将演示文稿的偶数张幻灯片删除后再放映。
B、将演示文稿的偶数张幻灯片设置为隐藏后再放映。
C、将演示文稿的所有奇数张幻灯片添加到自定义放映方案中,然后再放映。
2014广东省数据结构与算法最新考试试题库(完整版)
1、有一个有序表{1,4,6,10,18,35,42,53,67,71,78,84,92,99}。
当用二分查找法查找键值为84的结点时,经( B )比较后查找成功。
A) 4 B)3 C)2 D)122、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5C)6 D)73、向一个栈顶指针为hs的链栈中插入一个s结点时,应执行( D )。
A) hs->next=s; B) s->next=hs->next; hs->next=s;C) s->next=hs; hs=s; D) s->next=hs; hs=hs->next;4、线索二叉树中某结点D,没有左孩子的条件是( B )。
A)D->Lchild=Null B) D->ltag=1C) D->Rchild=Null D) D->ltag=05、( C)在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列C)顺序队列 D)链队列6、设给定问题的规模为变量n,解决该问题的算法所需时间为Tn=O(f(n)),Tn表示式中记号O表示( A )。
A)一个数量级别 B)一个平均值C)一个最大值 D)一个均方值7、二叉树第i(i≥1)层上至多有( C )结点。
A)2i B)2i C)2i-1 D)2i-18、广义表A=(A,B,(C,D),(E,(F,G))),则head(tail(head(tail(tail(A)))))=( D )。
A) (G) B) (D) C) C D) D9、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。
A)loc(A1)+i*c B)loc(A1)+(i-1)*cC)loc(A1)+i*c+1 D)loc(A1)+(i+1)*c10、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
2014-2015学年第2学期算法与数据结构(AB)试题与标准答案
2014-2015学年第2学期考试试题(A)卷课程名称算法与数据结构任课教师签名出题教师签名审题教师签名考试方式(闭)卷适用专业信息与计算机考试时间(120)分钟一、单项选择题(每小题4分,共20分)1、算法的时间复杂度与()有关。
(A) 问题规模(B) 计算机硬件性能(C) 编译程序质量(D) 程序设计语言2、线性表的链式存储结构与顺序存储结构相比的优点是()。
(A) 所有的操作算法实现简单(B) 便于随机存取(C) 便于插入和删除操作的实现(D) 便于利用零散的存储器空间3、设10个元素进栈序列是1,2,…,10,其输出序列是a1,a2,…,a10,如果a1=3,则a2的值为()。
(A) 一定是2 (B) 一定是1(C) 不可能是4 (D) 不可能是14、设高度为h的二叉树上只有度为0和度为2的结点(假设仅含根结点的二叉树的高度为1),则此二叉树所包含的结点数至多有()。
(A) 2h-1 (B) 2h - 1(C) 2h+1 (D) 2h + 15、设有13个值,用它们组成一棵哈夫曼树,则该哈夫曼树共有()个结点。
(A) 13 (B) 12(C) 26 (D) 25二、填空题(每小题2分,共10分)1、把一个递归过程转换成一个等价的非递归过程,通常使用()。
2、数据的逻辑结构是从逻辑上描述数据,它与数据的()无关,是独立于计算机的。
3、在单链表中,结点与结点之间的逻辑关系不是通过存储单元的顺序来表示的,而是通过()来实现的。
4、实现动态分配和动态回收一个结点空间的两个标准过程是()和()。
三、名词解释(每小题5分,共10分)1、线性表2、哈希函数四、简答题(每小题5分,共10分)1、简述顺序表和链表的优缺点。
2、举例说明直接选择排序方法是一种不稳定的排序方法。
五、应用题(每小题6分,共30分)1、关键字序列{12,7,18,13,17,29,34,6,8}是否为堆?若不是,请将其调整为最小堆,并统计建堆过程中的交换次数。
2014年广东省数据总结大纲
}
p=p->next;
}
return head;
}
3、对一般二叉树,仅根据一个先序、中序、后序遍历,不能确定另一个遍历序列。但对于满二叉树,任一结点的左右子树均含有数量相等的结点,根据此性质,可将任一遍历序列转为另一遍历序列(即任一遍历序列均可确定一棵二叉树)。
PreToPost(pre,post,l1+1,l1+half,l2,l2+half-1) //将左子树先序序列转为后序序列
PreToPost(pre,post,l1+half+1,h1,l2+half,h2-1) //将右子树先序序列转为后序序列
} }//PreToPost
32. .叶子结点只有在遍历中才能知道,这里使用中序递归遍历。设置前驱结点指针pre,初始为空。第一个叶子结点由指针head指向,遍历到叶子结点时,就将它前驱的rchild指针指向它,最后叶子结点的rchild为空。
{s=p;
q=p->next;
while(q)
if(q->data==p->next;free(q);
q=s->next;}
else
{ s=q; /*找与P结点值相同的结点*/
1、设一组有序的记录关键字序列为(13,18,24,35,47,50,62,83,90),查找方法用二分查找,要求计算出查找关键字62时的比较次数并计算出查找成功时的平均查找长度。
2、有一个带头结点的单链表,每个结点包括两个域,一个是整型域info,另一个是指向下一个结点的指针域next。假设单链表已建立,设计算法删除单链表中所有重复出现的结点,使得info域相等的结点只保留一个。
广东专升本数据结构知识点总结
广东专升本数据结构知识点总结①数据结构(逻辑结构)其4类基本结构:集合、线性结构、树形结构、图状结构和网状结构。
②物理结构(存储结构)其4种存储结构:顺序存储结构、链式存储结构、索引存储结构和散列存储结构。
③算法5个重要特性:有穷性、确定性、可行性、输入和输出。
通常从四个方面评价算法的质量:正确性、易读性、强壮性和高效率。
④线性表是由n≥0个数据元素组成的有限序列。
其特点为逻辑关系上相邻的两个元素在物理位置上也相邻。
⑤在顺序表中实现的基本运算:插入:平均移动结点次数为n/2;平均时间复杂度均为O(n)。
删除:平均移动结点次数为(n-1)/2;平均时间复杂度均为O(n)。
⑥存储位置计算:每个元素需占用L个存储单元第一个单元的存储地址作为数据元素的存储位置线性表的第i个数据元素ai的存储位置为LOC(ai)=LOC(a1)+(i-1)*L ,a1的存储位置,通常称做线性表的起始位置或基地址。
⑦线性表的链式存储结构:数据元素ai的存储映像称为结点,包括2个域:存数据的数据域、存后继存储位置的指针域。
⑧线性链表(单链表)特点:每个结点只包含1个指针域。
在单链表的第一个结点之前附设的一个结点,称之为头结点。
⑨假设L是LinkList型变量,则L为单链表的头指针,它指向表中第一个结点。
L->next 为第一个结点地址,L->next=NULL为空表。
回收结点:free(q)。
⑩栈:是限定仅在栈顶(表尾)进行插入或删除操作的线性表。
表头端称为栈底,不含有元素的空表称为空栈;栈又称为后进先出的线性表。
⑪队列:是一种先进先出的线性表,它只允许在表的一端进行插入,而另一端删除元素。
允许插入的一端叫做队尾,允许删除的一端则称为队头。
⑫链队列:用链表示的队列。
一个队列需要头指针和尾指针才能确定唯一。
⑩栈:是限定仅在栈顶(表尾)进行插入或删除操作的线性表。
表头端称为栈底,不含有元素的空表称为空栈;栈又称为后进先出的线性表。
(完整版)数据结构与算法第1章参考答案08
for(j=i+1;j<=n;j++)
if(R[j]>R[j+1])k=j;
t=R[k];R[k]=R[i];R[i]=t;
}
[解答]O(n2)
7.计算一元n次多项式P( x,n)=a0+alx+a2x2+..+anxn“的值,输人x,n,a0,al,…,an,输出多项式P(x,n)的值。设计算法求解,请选择合适的输人、输出格式,要求算法具有较好的时间性能。
习题参考答案
一.选择题
1.从逻辑上可以把数据结构分为(C)两大类。
A.动态结构、静态结构B.顺序结构、链式结构
C.线性结构、非线性结构D.初等结构、构造型结构
2.在下面的程序段中,对x的斌值语句的频度为(C)。
for( t=1;k<=n;k++)
for(j=1;j<=n; j++)
x=x十1;
A. O(2n)B.O(n)C.O(n2).D.O(1og2n)
D.同一个算法,实现语言的级别越高,执行效率就越低
5.在发生非法操作时,算法能够作出适当处理的特性称为(B)。
A.正确性B.健壮性C.可读性D.可移植性
二、判断题
1.数据的逻辑结构是指数据的各数据项之间的逻辑关系。(√)
2.顺序存储方式的优点是存储密度大,且插人、删除运算效率高。(×)
3.数据的逻辑结构说明数据元素之间的次序关系,它依赖于数据的存储结构。(×)
3.采用链式存储结构表示数据时,相邻的数据元素的存储地址(C)。
A.一定连续B.一定不连续
C.不一定连续D.部分连续,部分不连续
4.下面关于算法说法正确的是(D)。
A.算法的时间复杂度一般与算法的空间复杂度成正比
B.解决某问题的算法可能有多种,但肯定采用相同的数据结构
2014春数据结构答案(A)
华南农业大学期末考试答卷(A 卷)2013-2014学年第 2 学期 考试科目: 数据结构 考试类型:(闭卷)考试 考试时间: 120 分钟一、选择题(本大题共 10 小题,每小题2分,共20分)二、应用题(本大题共 5 小题,每小题6分,共30分)1、参考答案:初始堆序列: 100 87 75 61 80 5 45 55 40 30 第一趟堆排序后序列:87 80 75 61 30 5 45 55 40 100 第一趟堆排序后序列:80 61 75 55 30 5 45 40 87 1002、参考答案:编码时左分支为0,右分支为1,各字符编码略。
3、参考答案:f4525 72 de100b172ac70 33 1570331524、参考答案:查找50过程:H(50)=(3×50+7 )mod m =1 冲突用线性探测再散列处理冲突: (1+1)mod 13=2 冲突(1+2)mod 13=3 不冲突 所以查找50需要进行三次比较查找36过程:H(36)=(3×36+7 )mod m =11 冲突用线性探测再散列处理冲突: (11+1)mod 13=12 冲突 (11+2)mod 13=0 空所以查找36需要进行两次比较5、参考答案:简述克鲁斯卡尔算法思想,注意要按照步骤生成最小生成树,且本题最小生成树不唯一,下图时其中一棵最小生成树。
703315889040 4556三、程序填空题(本大题5小题,共15个空白处,每空2分,共30分,注意:每空只填一个语句)(1) H.r[s]=H.r[j];(2) s=j;(3) H.r[s]=rc;(4) HeapAdjust(H,i,H.length);(5) p = p->next;(6) minp(7) p->data != q->data(8) q->data = temp;(9) EnQueue(Q,v);(10) DeQueue(Q,u);(11) EnQueue(Q,w);(12) HT[c].weight=2;(13) cd[cdlen++]='1';(14) c=HT[c].parent;(15) --cdlen;四、程序设计题(本大题共2小题,每小题10分,共20分。
《数据结构与算法》试卷与答案
广州大学学年第学期考试卷课程数据结构与算法考试形式(闭卷,考试)信息学院系专业级班学号:姓名:一、填空题:(每空2分,共20分)1.在拓扑排序中,拓扑序列的第一个顶点必定是的顶点。
2. 由四个分别带权值为5, 12, 9, 30, 7, 16的叶子结点构造一棵哈夫曼树,该树的结点个数为,树的带权路径长度为。
3.对表长为n的顺序表进行分块查找,若以顺序查找确定块,且每块长度为s,则在等概率查找的情况下,查找成功时的平均查找长度为。
4.如果结点A有3个兄弟,而且B是A的双亲,则B的度是5.一个无序序列可以通过构造一棵树而变成一个有序序列,构造树的过程即为对无序序列进行排序的过程。
6.设有向图有n个顶点和e条边,进行拓扑排序时,总的计算时间为7. 求从某源点到其余各顶点的Dijkstra算法,当图的顶点数为10,用邻接矩阵表示图时计算时间约为10ms,则当图的顶点数为40时,计算时间为ms 8. 设一棵后序线索树的高度是50,结点x是树中的一个结点,其双亲是结点y,y的右子树高度是31,x是y的左孩子,则确定x的后继最多需经过个中间结点(不含后继及x本身)9.对于单向链表,在两个结点之间插入一个新结点时需修改的指针共有个。
二、单项选择题(每题1分,共10分)1. ( ) 假设以数组A[m..n]存放循环队列的元素,其头指针是front,当前队列有k个元素,则队列的尾指针为()A.(front+k) mod (n-m+1)B.(m+k) mod n + frontC.(front-m+k) mod (n-m+1) +mD.(front-m+k) mod (n-m+1)2. ( ) 若用冒泡排序对关键字序列{20, 17, 11, 8, 6, 2} 从小到大进行排列, 则需要交换的总次数为( )A. 3B. 6C. 12D. 153. ( ) 具有842个结点的完全三叉树,其叶子结点共有()个A. 421B. 422C.420D.423E.以上都不是4.()顺序查找方法适用于存储结构为()的线性表A. 压缩存储B. 散列存储C. 顺序存储D. 链式存储E 以上都不是5.()以下序列不是堆的是()A.(100,85,98,77,80,60,82,40,20,10,66)B. (100,98,85,82,80,77,66,60,40,20,10)C.(10,20,40,60,66,77,80,82,85,98,100)D.(100,85,40,77,80,60,66,98,82,10,20)6.()如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用的查找方法是()A.分块查找 B. 顺序查找 C. 折半查找 D. 基于属性7. ()一棵有n个结点的二叉树,按层次从上到下,同一层从左到右的顺序存储在一维数组A[1...n]中,则二叉树中第i个结点(i从1开始用上述方法编号)的右孩子在数组A中的位置是()A. A[2i] (2i<=n)B.A[2i+1] (2i+1<=n)C. A[i/2]D.条件不充分,无法确定8.()有数据{53,30,37,12,45,24,96},从空二叉树开始逐个插入数据来形成二叉排序树,若希望高度最小,则应选择下面哪个序列输入()A. 45,24,53,12,37,96,30B. 37,24,12,30,53,45,96C. 12,24,30,37,45,53,96D. 30,24,12,37,45,96,539.( )在有向图G的拓扑序列中,若顶点V i在顶点V j之前,则下列情形不可能出现的是( )A. G中有弧<V i,V j>B.G中有一条从V i到V j的路径C. G中没有弧<V i,V j>D. G中有一条从V j到V i的路径10. ( )设森林F对应的二叉树为B,它有m个结点,B的根为p,p的右子树结点个数为n,森林F中第一棵树的结点个数是( )A. m-nB. m-n-1C. n+1D. 条件不足,无法确定三、判断题(在括号内填上“√”或“╳”,每题1分,共10分,做错不倒扣)1 ()数据对象就是一组数据元素的集合。
2015广东省数据结构与算法考试重点和考试技巧
1、二叉树第i(i≥1)层上至多有( C )结点。
A)2i B)2i C)2i-1 D)2i-12、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以C)部分地址必须是连续 D)必须是不连续的3、以下属于顺序存储结构优点的是( A )。
A) 存储密度大B) 插入运算方便C)删除运算方便D)可方便地用于各种逻辑结构的存储表示4、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;C)p=p->next->next; D) p->next=p;5、队列的操作的原则是( A )。
A)先进先出 B) 后进先出C) 只能进行插入 D) 只能进行删除6、下列序列中,执行第一趟快速排序后得到的序列是( A )。
A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]7、下列各种数据结构中属于线性结构的有( A )。
A)栈 B) 二叉树C) 广义表 D) 图8、在一个链队列中,假定front和rear分别为队首和队尾指针,则删除一个结点的操作为( B )。
A) rear=rear->next; B) front=front->next;C) rear=front->next; D) front=rear->next ;9、在一棵度为3的树中,度为3的结点个数为2,度为2的结点个数为1,则度为0的结点个数为( C )。
A)4 B)5C)6 D)710、在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈顶指针,当做出栈处理时,top变化为( C )。
A)top不变 B)top=0 C)top-- D)top++11、下列各种数据结构中属于线性结构的有( A )。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、队列的操作的原则是( A )。
A)先进先出 B) 后进先出
C) 只能进行插入 D) 只能进行删除
2、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a??11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( B )。
A)13 B)33 C)18 D)40
3、线性表的链接实现有利于( A )运算。
A)插入 B)读元素
C)查找 D)定位
4、对待排序的元素序列进行划分,将其分为左、右两个子序列,再对两个子序列施加同样的排序操作,直到子序列为空或只剩一个元素为止。
这样的排序方法是( A )。
A)直接选择排序 B)直接插入排序
C)快速排序 D)起泡排序
5、下面关于线性表的叙述中,错误的是哪一个?( D )
A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
6、下面关于线性表的叙述中,错误的是哪一个?( D )
A)线性表采用顺序存储,必须占用一片连续的存储单元。
B)线性表采用链接存储,便于插入和删除操作。
C)线性表采用链接存储,不必占用一片连续的存储单元。
D)线性表采用顺序存储,便于进行插入和删除操作。
7、广义表head(((a,b),(c,d)))的运算结果为( A )。
A)(a,b) B)(c,d)
C)空表 D)((a,b),(c,d))
8、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。
A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
9、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a??11为第一个元素,其存储地址为1,每元素占1个地址空间,则a85的地址为( B )。
A)13 B)33 C)18 D)40
10、串的逻辑结构与( D )的逻辑结构不同。
A)线性表 B)栈
C)队列 D)树
11、已知广义表L=((x,y,z),a,(u,t,w)),从L 表中取出原子项t 的操作是( D )。
A) Head(Head(Tail(Tail(L))))
B) Tail(Head(Head(Tail(L))))
C) Head(Tail(Head(Tail(L))))
D)Head(Tail(Head(Tail(Tail(L)))))
12、倘若在对串的插入、删除运算中,期望运算速度最快,则应采用( C )。
A)顺序表示法 B)单字符为结点的单链表表示法
C)等量分块表示法 D)不等量分块表示法
13、线性表的链接实现有利于( A )运算。
A)插入 B)读元素
C)查找 D)定位
14、下列序列中,执行第一趟快速排序后得到的序列是( A )。
A)[d,a,e,d,b]f[h,g] B) [c,e,a,d]f[h,g,b]
C) [g,a,e,c,b]f[d,h] D) [a,b,c,d,]f[e,g,h]
15、线索二叉树中某结点D,没有左孩子的条件是( B )。
A)D->Lchild=Null B) D->ltag=1
C) D->Rchild=Null D) D->ltag=0。