2010黑龙江省JAVA版数据结构(必备资料)
数据结构(JAVA版).46页文档
60、人民的幸福是至高无个的法。— —西塞 罗
谢谢
11、越是没有本领的就越加自命不凡。——邓拓 12、越是无能的人,越喜欢挑剔别人的错儿。——爱尔兰 13、知人者智,自知者明。胜人者有力,自胜者强。——老子 14、意志坚强的人能把世界放在手中像泥块一样任意揉捏。——歌德 15、最具挑战性的挑战莫过于提升自我。——迈克尔·F·斯特利
数据结构JAVA版).
56、极端的法规,就是极端的不公。 ——西 塞罗 57、法律一旦成为人们的需要,人们 就不再 配享受 自由了 。—— 毕达哥 拉斯 58、法律规定的惩罚不是为了私人的 利益, 而是为 了公共 的利益 ;一部 分靠有 害的强 制,一 部分靠 榜样的 效力。 ——格 老秀斯 59、假如没有法律他们会更快乐的话 ,那么 法律作 为一件 无用之 物自己 就会消 灭。— —洛克
2010黑龙江省数据结构考试高级
2、设 T 是一棵满二叉树,编写一个将 T 的先序遍历序列转换为后序遍历序列的递归算法。 3、请设计一个算法,要求该算法把二叉树的叶子结点按从左到右的顺序连成一个单链表,表 头指针为 head。 二叉树按二叉链表方式存储,链接时用叶子结点的右指针域来存放单链表 指针。分析你的算法的时、空复杂度。 4、在有向图 G 中,如果 r 到 G 中的每个结点都有路径可达,则称结点 r 为 G 的根结点。编写 一个算法完成下列功能: (1) .建立有向图 G 的邻接表存储结构; (2) .判断有向图 G 是否有根,若有,则打印出所有根结点的值。 5、 由二叉树的前序遍历和中序遍历序列能确定唯一的一棵二叉树, 下面程序的作用是实现由 已知某二叉树的前序遍历和中序遍历序列,生成一棵用二叉链表表示的二叉树并打印出后序 遍历序列,请写出程序所缺的语句。 #define MAX 100 typedef struct Node {char info; struct Node *llink, *rlink; }TNODE; char pred[MAX],inod[MAX]; main(int argc,int **argv) { TNODE *root; if(argc<3) exit 0; strcpy(pred,argv[1]); strcpy(inod,argv[2]); root=restore(pred,inod,strlen(pred)); postorder(root); } TNODE *restore(char *ppos,char *ipos,int n) { TNODE *ptr; char *rpos; if(n<=0) return NULL; ptr->info=(1)_______; for((2)_______ ; rpos<ipos+n;rpos++) if(*rpos==*ppos) break; k=(3)_______; ptr->llink=restore(ppos+1, (4)_______,k ); ptr->rlink=restore ((5)_______+k,rpos+1,n-1-k); return ptr; } postorder(TNODE*ptr) { if(ptr=NULL) return; postorder(ptr->llink); postorder(ptr->rlink); } int k;
java数据结构参考文献
java数据结构参考文献
以下是一些关于Java数据结构的参考文献:
1. 《数据结构与算法分析(Java语言描述)》, 机械工业出版社,作者: Mark Allen Weiss。
2. 《Java数据结构与算法》, 人民邮电出版社,作者: 王晓东。
3. 《Java核心技术卷II:高级特性(原书第10版)》,机械工业出版社,作者: Cay S. Horstmann、Gary Cornell。
4. 《算法图解(Python/Java版)》, 人民邮电出版社,作者: Aditya Bhargava。
5. 《大话数据结构与算法(Java版)》,清华大学出版社,作者: 宗哲。
6. 《数据结构与算法分析(Java版)》,清华大学出版社,作者: 孙秋华、赵凤芝。
7. 《Java编程思想(第4版)》,机械工业出版社,作者: Bruce Eckel。
8. 《Java数据结构和算法(第2版)》,清华大学出版社,作者: 罗卫、李晶、吴艳。
9. 《Java程序员面试宝典》,人民邮电出版社,作者: 陈小玉。
10. 《Java程序设计与数据结构(基础篇)》,人民邮电出版社,作者: 徐
宏英。
以上参考文献仅供参考,建议根据自身需求选择合适的书籍阅读。
Java版数据结构(程序员必须看)
≤ |an|*|xn|+|an-1|*|xn|+…+|a1|*|xn|+|a0|*|xn|
=(|an|+|an-1|+…+|a1|+|a0|)|xn|=c|xn| 其中:n0=1, c= |an|+|an-1|+…+|a1|+|a0|, g(n)=xn
1.输入数据所占空间 2.程序本身所占空间 3.辅助变量所占空间
若输入数据所占空间只取决于问题本身,和算 法无关,则只需要分析除输入和程序之外的辅助变 量所占额外空间。
若所需额外空间相对于输入数据量来说是常数,则 称此算法为原地工作。
若所需存储量依赖于特定的输入,则通常按最坏情 况考虑。
注意:时间与空间往往是对矛盾,要综合考虑。
3.健壮性
当输入的数据非法时,算法应当恰当 地作出反映或进行相应处理,而不是产 生莫名奇妙的输出结果。并且,处理出 错的方法不应是中断程序的执行,而应 是返回一个表示错误或错误性质的值, 以便在更高的抽象层次上进行处理。
4.高效率与低存储量需求
通常,效率指的是算法执行时间; 存储量指的是算法执行过程中所需的 最大存储空间,两者都与问题的规模 有关。
O(2n)<O(n!)<O(nn) 当n取得很大时,指数时间算法和多项式时间算法 在所需时间上非常悬殊。
1.3.4 算法的存储空间的需求 算法的空间复杂度定义为: S(n) = O(g(n))
表示随着问题规模 n 的增大,算法运行所 需存储量的增长率与 g(n) 的增长率相同。
算法的存储量包括:
《数据结构(Java版)(第3版)》复习
完全二叉树类
二叉链表 三叉链表
孩子顺序存储 树 ADT 孩子链式存储
孩子链表
父母孩子链表 二叉链表 三叉链表 孩子兄弟链表 父母孩子兄弟链表
《数据结构 (Java版)(第3版) 》
6.4 线索二叉树
1. 什么是线索二叉树?线索有什么作用?为 什么要将二叉树线索化? 2. 线索二叉树采用怎样的存储结构?在二叉 树线索化的过程中,对二叉链表的二叉树 做了哪些改动?
《数据结构 (Java版)(第3版) 》
6.5 Huffman编码与Huffman树
1. Huffman编码的特点是什么?有何作用? 2. 设一棵Huffman树有n0个叶子结点,该树 共有多少个结点?为什么? 【答】2n0-1。因为Huffman树没有1度结点, 而n0=n2+1,所以n=n0+n2=2n0-1。
数据结构java版第3版邻接矩阵邻接多重表邻接表深度和广度优先搜索遍历最小生成树最短路径ggraph图接口adjlistgraph邻接表表示的图类abstractgraph抽象图类实现adjmatrixgraph邻接矩阵表示的图类继承继承邻接矩阵邻接多重表邻接表深度和广度优先搜索遍历最小生成树最短路径ggraph图接口adjlistgraph邻接表表示的图类abstractgraph抽象图类实现adjmatrixgraph邻接矩阵表示的图类继承继承数据结构java版第3版73图的广度优先搜索遍历数据结构java版第3版74kruskal算法数据结构java版第3版75每对顶点间的最短路径floyd算法数据结构java版第3版dijkstraab10dac50abc25dabd47abce30dabced41abcef3850201037201511501010153715111511内容
java数据结构简版
java数据结构Java数据结构1. 介绍Java是一种面向对象的编程语言,提供了许多灵活且高效的数据结构。
数据结构是计算机科学中存储和组织数据的方式,它可以让我们更有效地操作和管理数据。
Java提供了多种常用的数据结构,例如数组、链表、栈、队列、树和图等。
在本文档中,我们将探讨Java中常见的数据结构及其使用场景。
我们将重点介绍数据结构的定义、基本操作和一些常用的算法。
通过掌握这些数据结构,您将能够更加灵活地解决各种编程问题。
2. 数组数组是最简单和最常见的数据结构之一。
它是一种线性数据结构,用于存储相同类型的元素。
在Java中,数组的长度是固定的,一旦创建不能改变。
可以使用下标访问和修改数组中的元素。
2.1 数组的定义和初始化在Java中,可以使用以下语法定义和初始化数组:```java// 声明一个整数数组int[] numbers;// 创建一个有5个元素的整数数组int[] numbers = new int[5];// 直接初始化数组int[] numbers = {1, 2, 3, 4, 5};```2.2 数组的基本操作对于数组,可以执行以下基本操作:- 访问元素:使用下标访问数组中的元素,例如 `numbers[0]` 表示数组中的第一个元素。
- 修改元素:使用下标修改数组中的元素,例如 `numbers[0] = 10` 将数组中的第一个元素修改为10。
- 获取长度:使用 `length` 属性获取数组的长度,例如`numbers.length` 返回数组的长度。
2.3 数组的使用场景数组可以用于解决许多问题,例如:- 存储一组数据,并对数据进行遍历和操作。
- 用于实现栈和队列等数据结构的底层存储。
3. 链表链表是一种常见的线性数据结构,它通过节点和引用的方式组织数据。
每个节点包含了一个数据元素和一个指向下一个节点的引用。
链表可以实现动态操作,即可以在运行时添加、删除和修改元素。
数据结构复习资料,java数据结构期末考试
第二章算法分析1.算法分析是计算机科学的基础2.增长函数表示问题(n)大小与我们希望最优化的值之间的关系。
该函数表示了该算法的时间复杂度或空间复杂度。
增长函数表示与该问题大小相对应的时间或空间的使用3.渐进复杂度:随着n的增加时增长函数的一般性质,这一特性基于该表达式的主项,即n 增加时表达式中增长最快的那一项。
4.渐进复杂度称为算法的阶次,算法的阶次是忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出来的。
算法的阶次为增长函数提供了一个上界。
5.渐进复杂度:增长函数的界限,由增长函数的主项确定的。
渐进复杂度类似的函数,归为相同类型的函数。
6.只有可运行的语句才会增加时间复杂度。
7. O() 或者大O记法:与问题大小无关、执行时间恒定的增长函数称为具有O(1)的复杂8.所有具有相同阶次的算法,从运行效率的角度来说都是等价的。
9.如果算法的运行效率低,从长远来说,使用更快的处理器也无济于事。
10.要分析循环运行,首先要确定该循环体的阶次n,然后用该循环要运行的次数乘以它。
(n表示的是问题的大小)11.分析嵌套循环的复杂度时,必须将内层和外层循环都考虑进来。
12.方法调用的复杂度分析:如:public void printsum(int count){int sum = 0 ;for (int I = 1 ; I < count ; I++)sum += I ;System.out.println(sun);}printsum方法的复杂度为O(n),计算调用该方法的初始循环的时间复杂度,只需把printsum方法的复杂度乘以该循环运行的次数即可。
所以调用上面实现的printsum方法的复杂度为O(n2)。
13指数函数增长 > 幂函数增长 > 对数函数增长第三章集合概述——栈1.集合是一种聚集、组织了其他对象的对象。
它定义了一种特定的方式,可以访问、管理所包含的对象(称为该集合的元素)。
2010黑龙江省数据库期末考试深入
1、对一般二叉树,仅根据一个先序、中序、后序遍历,不能确定另一个遍历序列。
但对于满二叉树,任一结点的左右子树均含有数量相等的结点,根据此性质,可将任一遍历序列转为另一遍历序列(即任一遍历序列均可确定一棵二叉树)。
void PreToPost(ElemType pre[] ,post[],int l1,h1,l2,h2)//将满二叉树的先序序列转为后序序列,l1,h1,l2,h2是序列初始和最后结点的下标。
{if(h1>=l1){post[h2]=pre[l1]; //根结点half=(h1-l1)/2; //左或右子树的结点数PreToPost(pre,post,l1+1,l1+half,l2,l2+half-1) //将左子树先序序列转为后序序列PreToPost(pre,post,l1+half+1,h1,l2+half,h2-1) //将右子树先序序列转为后序序列} }//PreToPost32. .叶子结点只有在遍历中才能知道,这里使用中序递归遍历。
设置前驱结点指针pre,初始为空。
第一个叶子结点由指针head指向,遍历到叶子结点时,就将它前驱的rchild指针指向它,最后叶子结点的rchild为空。
LinkedList head,pre=null; //全局变量LinkedList InOrder(BiTree bt)//中序遍历二叉树bt,将叶子结点从左到右链成一个单链表,表头指针为head{if(bt){InOrder(bt->lchild); //中序遍历左子树if(bt->lchild==null && bt->rchild==null) //叶子结点if(pre==null) {head=bt; pre=bt;} //处理第一个叶子结点else{pre->rchild=bt; pre=bt; } //将叶子结点链入链表InOrder(bt->rchild); //中序遍历左子树pre->rchild=null; //设置链表尾}return(head); } //InOrder时间复杂度为O(n),辅助变量使用head和pre,栈空间复杂度O(n)2、根据二叉排序树中序遍历所得结点值为增序的性质,在遍历中将当前遍历结点与其前驱结点值比较,即可得出结论,为此设全局指针变量pre(初值为null)和全局变量flag,初值为true。
2010年黑龙江省数据分析高级
//s是元素为整数的栈,本算法进行入栈和退栈操作。
{int top=0; //top为栈顶指针,定义top=0时为栈空。
for(i=1; i<=n; i++) //n个整数序列作处理。
//用“破圈法”求解带权连通无向图的一棵最小代价生成树。
{typedef struct {int i,j,w}node; //设顶点信息就是顶点编号,权是整型数
node edge[];
scanf( "%d%d",&e,&n) ; //输入边数和顶点数。
for (i=1;i<=e;i++) //输入e条边:顶点,权值。
1、 连通图的生成树包括图中的全部n个顶点和足以使图连通的n-1条边,最小生成树是边上权值之和最小的生成树。故可按权值从大到小对边进行排序,然后从大到小将边删除。每删除一条当前权值最大的边后,就去测试图是否仍连通,若不再连通,则将该边恢复。若仍连通,继续向下删;直到剩n-1条边为止。
void SpnTree (AdjList g)
{s.lvl=++R; s.l=0; s.h=i-1; s.f=p; s.lr=1;enqueue(Q,s);//左子树有关信息入队列
s.lvl=++R; s.l=i+1;s.h=n-1;s.f=p; s.lr=2;enqueue(Q,s);//右子树有关信息入队列
}
while (!empty(Q)) //当队列不空,进行循环,构造二叉树的左右子树
当n=1时,只有一个根结点,由中序序列和后序序列可以确定这棵二叉树。
2010黑龙江省JAVA版数据结构考试技巧与口诀
C) 对角矩阵 D) 对称矩阵
24、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;
1、若采用邻接矩阵法存储一个n个顶点的无向图,则该邻接矩阵是一个( D )。
A)上三角矩阵 B) 稀疏矩阵
C) 对角矩阵 D) 对称矩阵
2、广义表head(((a,b),(c,d)))的运算结果为( A )。
A)(a,b) B)(c,d)
A)3,2,5,6,4,1 B)1,5,4,6,2,3
C)2,4,3,5,1,6 D)4,5,3,6,2,1
8、数据结构研究的内容是( D )。
A)数据的逻辑结构 B)数据的存储结构
C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面
C)p=p->next->next; D) p->next=p;
34、n个顶点,e条边的有向图的邻接矩阵中非零元素有( C )个。
A)n B)2e C)e D) n+e
35、若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点的个数是( B )。
29、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。
A)3,2,5,6,4,1 B)1,5,4,6,2,3
C)2,4,3,5,1,6 D)4,5,3,6,2,1
30、用一维数组A进行顺序存储时,若起始地址为loc(A1),元素长度为c,则A的第i个数组单元在存放地址loc(Ai),等于( B )。
数据结构(JAVA版)
可扩展性
数据结构应具备良好的可扩展性,以便适应未来 数据规模和操作需求的变化。
ABCD
高效性
数据结构应能高效地执行各种操作,以满足实际 应用的需求。
易用性
数据结构应提供简单易用的接口,方便开发人员 的使用和调试。
数据结构优化策略
空间优化
通过合理分配内存空间,减少 不必要的内存占用,提高内存
利用率。
数据结构的应用场景
数据结构在计算机科学领域应用广泛, 如数据库系统、操作系统、编译器设计 等。
在实际应用中,数据结构的选择要根据具体 需求和场景来决定,例如在搜索引擎中,使 用倒排索引和哈希表可以提高查询效率。
数据结构在解决实际问题中发挥着 重要作用,如社交网络分析、图像 处理、机器学习等领域都离不开数 据结构的支持。
时间优化
通过优化算法和数据结构,减 少操作时间,提高数据操作的 效率。
代码优化
通过优化代码实现,提高代码 的可读性和可维护性,降低维 护成本。
并发优化
通过合理设计并发控制机制, 提高数据结构的并发处理能力
。
数据结构选择技巧
01
根据实际需求选择合适的数据结构
根据具体的应用场景和需求,选择最合适的数据结构来存储和操作数据。
广度优先搜索(BFS)
总结词
广度优先搜索是一种图遍历算法,它会先访 问离起始节点最近的节点。
详细描述
该算法从根节点开始,探索最近的节点,然 后逐步向外探索,直到所有节点都被访问。
Dijkstra算法
要点一
总结词
Dijkstra算法是一种用于在有向图中查找最短路径的算法。
要点二
详细描述
该算法从源节点开始,逐步找到离源节点最近的节点,然 后更新其相邻节点的距离,直到所有节点都被访问。
Java数据结构介绍(线性结构和非线性结构)
非线性结构包括:二维数组,多维数组,广义表,树结构,图结构
链式存储的线性表称为链表链表中的存储元素不一定是连续的元素节点中存放数据元素以及相邻元素的地址信息
Java数 据 结 构 介 绍 ( 线 性 结 构 和 非 线 性 结 构 )
数据结构包括:线性结构和非线性结构。
ห้องสมุดไป่ตู้线性结构
数据元素之间存在一对一的线性关系 包括顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续的 链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息 线性结构常见的有:数组、队列、链表和栈
《数据结构》实验指导书(Java语言版)
《数据结构》课程实验指导《数据结构》实验教学大纲课程代码:0806523006 开课学期:3 开课专业:信息管理与信息系统总学时/实验学时:64/16 总学分/实验学分:3.5/0.5一、课程简介数据结构是计算机各专业的重要技术基础课。
在计算机科学中,数据结构不仅是一般程序设计的基础,而且是编译原理、操作系统、数据库系统及其它系统程序和大型应用程序开发的重要基础。
数据结构课程主要讨论各种主要数据结构的特点、计算机内的表示方法、处理数据的算法以及对算法性能的分析。
通过对本课程的系统学习使学生掌握各种数据结构的特点、存储表示、运算的原理和方法,学会从问题入手,分析研究计算机加工的数据结构的特性,以便为应用所涉及的数据选择适当的逻辑结构、存储机构及其相应的操作算法,并初步掌握时间和空间分析技术。
另一方面,本课程的学习过程也是进行复杂程序设计的训练过程,通过对本课程算法设计和上机实践的训练,还应培养学生的数据抽象能力和程序设计的能力。
二、实验的地位、作用和目的数据结构是一门实践性较强的基础课程,本课程实验主要是着眼于原理和应用的结合,通过实验,一方面能使学生学会把书上学到的知识用于解决实际问题,加强培养学生如何根据计算机所处理对象的特点来组织数据存储和编写性能好的操作算法的能力,为以后相关课程的学习和大型软件的开发打下扎实的基础。
另一方面使书上的知识变活,起到深化理解和灵活掌握教学内容的目的。
三、实验方式与基本要求实验方式是上机编写完成实验项目指定功能的程序,并调试、运行,最终得出正确结果。
具体实验要求如下:1.问题分析充分地分析和理解问题本身,弄清要求,包括功能要求、性能要求、设计要求和约束,以及基本数据特性、数据间联系等等。
2.数据结构设计针对要解决的问题,考虑各种可能的数据结构,并且力求从中选出最佳方案(必须连同算法实现一起考虑),确定主要的数据结构和全程变量。
对引入的每种数据结构和全程变量要详细说明其功用、初值和操作的特点。
2010年黑龙江省学习数据库大纲
1、我们可用“破圈法”求解带权连通无向图的一棵最小代价生成树。
所谓“破圈法”就是“任取一圈,去掉圈上权最大的边”,反复执行这一步骤,直到没有圈为止。
请给出用“破圈法”求解给定的带权连通无向图的一棵最小代价生成树的详细算法,并用程序实现你所给出的算法。
注:圈就是回路。
2、假设K1,…,Kn是n个关键词,试解答:试用二叉查找树的插入算法建立一棵二叉查找树,即当关键词的插入次序为K1,K2,…,Kn时,用算法建立一棵以LLINK / RLINK 链接表示的二叉查找树。
3、冒泡排序算法是把大的元素向上移(气泡的上浮),也可以把小的元素向下移(气泡的下沉)请给出上浮和下沉过程交替的冒泡排序算法。
48.有n个记录存储在带头结点的双向链表中,现用双向起泡排序法对其按上升序进行排序,请写出这种排序的算法。
(注:双向起泡排序即相邻两趟排序向相反方向起泡)4、(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+1。
数据结构(Java版)-习题解答与实验指导
数据结构(Java版)习题解答与实验指导目录第1章绪论 (1)1.1 数据结构的基本概念 (1)1.2 算法 (2)第2章线性表 (3)2.1 线性表抽象数据类型 (3)2.2 线性表的顺序存储和实现 (4)2.2.1 线性表的顺序存储结构 (4)2.2.2 顺序表 (5)2.2.3 排序顺序表 (7)2.3 线性表的链式存储和实现 (9)2.3.1 单链表 (9)【习题2-8】单链表结点类问题讨论。
(9)【习2.1】使用单链表求解Josephus环问题。
(12)【习2.2】集合并运算,单链表深拷贝的应用。
(14)2.3.2 双链表 (16)【习2.3】循环双链表的迭代方法。
(19)【习2.4】循环双链表合并连接。
(19)第3章串 (21)3.1 串抽象数据类型 (21)3.2 串的存储和实现 (22)3.2.1 串的存储结构 (22)3.2.2 常量字符串类 (22)【习3.1】C/C++语言,string.h中的strcpy()和strcat()函数存在下标越界错误。
(22)【思考题3-1】逆转String串,分析算法效率。
(24)【实验题3-1】MyString类,比较串大小,忽略字母大小写。
25【例3.2思考题3-2】MyInteger整数类,返回value的radix进制原码字符串。
(26)【实验题3-9】浮点数类。
(27)3.2.3 变量字符串类 (30)【实验题3-11】删除变量串中的所有空格。
4-样卷 (30)3.3 串的模式匹配 (31)3.3.1 Brute-Force模式匹配算法 (31)3.3.2 模式匹配应用 (32)【思考题3-4,实验题3-13】MyString类,replaceAll(pattern,s)改错。
(32)3.3.3 KMP模式匹配算法 (33)第4章栈和队列 (36)4.1 栈 (36)4.2 队列 (38)4.3 递归 (41)【习4.1】打印数字塔。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、设单链表中指针p指向结点m,若要删除m之后的结点(若存在),则需修改指针的操作为( A )。
A)p->next=p->next->next; B) p=p->next;
C)p=p->next->next; D) p->next=p;
2、广义表head(((a,b),(c,d)))的运算结果为( A )。
A)(a,b) B)(c,d)
C)空表 D)((a,b),(c,d))
3、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
4、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。
A)顺序表B)双链表C)带头结点的双循环链表D)单循环链表
5、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用( D )存储方式最节省时间。
A)顺序表B)双链表C)带头结点的双循环链表D)单循环链表
6、线性表的链接实现有利于( A )运算。
A)插入 B)读元素
C)查找 D)定位
7、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
8、数据结构研究的内容是( D )。
A)数据的逻辑结构 B)数据的存储结构
C)建立在相应逻辑结构和存储结构上的算法 D)包括以上三个方面
9、向一个栈顶指针为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;
10、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。
A)3,2,5,6,4,1 B)1,5,4,6,2,3
C)2,4,3,5,1,6 D)4,5,3,6,2,1
11、队列的操作的原则是( A )。
A)先进先出 B) 后进先出
C) 只能进行插入 D) 只能进行删除
12、下列各种数据结构中属于线性结构的有( A )。
A)栈 B) 二叉树
C) 广义表 D) 图
13、采用链结构存储线性表时,其地址( B )。
A)必须是连续的 B)连续不连续都可以
C)部分地址必须是连续 D)必须是不连续的
14、已知栈的最大容量为4。
若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( C )。
A) 5,4,3,2,1,6 B) 2,3,5,6,1,4
C) 3,2,5,4,1,6 D) 1,4,6,5,2,3
15、( C )在进行插入操作时,常产生假溢出现象。
A)顺序栈 B)循环队列
C)顺序队列 D)链队列
16、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边。