2014年陕西省数据结构C语言版考试技巧与口诀
C语言口诀
第一章1.C语言是一个函数式语言,有且仅有一个叫做“main”的主函数。
2.程序从“main”中开始,在“main”中结束。
3.函数不能嵌套定义,可以嵌套使用(每个函数地位一样)。
4.一个C语言由函数组成,用“;”作语句结束符。
5.标识符是以字母或下划线开头的一串字母、数字或下划线构成的序列;标识符大小写有区别,不能使用关键字。
关键字共有32个(主要有:auto,break,case,char,continue,default,do,double,else,extern,float,for,if,int,long,returm,short,singed,sizeof,static,struct,switch,typedef,union,void,while),关键字均为小写,若为大写则为合法的标识符(如:Do是合法的)第二章6.普通字符常量是用单撇号括起来的一个字符。
7.常用的以‘\’开头的特殊字符:\n:换行\t:横向跳格\b:退格\r:回车8.C语言中没有字符串变量,用字符数组存放。
‘a’是字符常量,“a”是字符串常量,‘ab’既不是字符常量,也不是字符串变量。
存储时自动在结尾加’\0’为结束标志,所以在内存中占的字节要在原本再加一。
9.变量与变量间用逗号分开;变量必须先定义后使用;定义时系统给该变量分配变量空间,只有分配了变量空间才有意义。
10.a与!a=0等价;!a与a==0等价。
11.在C语言中用1表示逻辑真,用0表示逻辑假。
在关系表达式和逻辑表达式中只有两个结果(0或1)。
12.判断A与B是否相等(fabs(A—B)<1e—6)13.用条件表达式求A、B、C中最大的数:C>(A>B?A:B)?C(A>B?A:B)14.在进行四则混合运算时,表达式的结果由参与运算的数据项的最高类型决定;编程时,只允许低类型数据向高类型数据转换(如果精度高的向精度低的转换则会丢失精度:如:int i;i=2.56则结果为2)。
2014年陕西省数据要领大纲
1、给出折半查找的递归算法,并给出算法时间复杂度性分析。
2、已知有向图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、V73、设指针变量p指向双向链表中结点A,指针变量q指向被插入结点B,要求给出在结点A 的后面插入结点B的操作序列(设双向链表中结点的两个指针域分别为llink和rlink)。
4、本题应使用深度优先遍历,从主调函数进入dfs(v)时,开始记数,若退出dfs()前,已访问完有向图的全部顶点(设为n个),则有向图有根,v为根结点。
将n个顶点从1到n编号,各调用一次dfs()过程,就可以求出全部的根结点。
题中有向图的邻接表存储结构、记顶点个数的变量、以及访问标记数组等均设计为全局变量。
建立有向图g的邻接表存储结构参见上面第2题,这里只给出判断有向图是否有根的算法。
int num=0, visited[]=0 //num记访问顶点个数,访问数组visited初始化。
const n=用户定义的顶点数;AdjList g ; //用邻接表作存储结构的有向图g。
void dfs(v){visited [v]=1; num++; //访问的顶点数+1if (num==n) {printf(“%d是有向图的根。
\n”,v); num=0;}//ifp=g[v].firstarc;while (p){if (visied[p->adjvex]==0) dfs (p->adjvex);p=p->next;} //whilevisited[v]=0; num--; //恢复顶点v}//dfsvoid JudgeRoot()//判断有向图是否有根,有根则输出之。
数据结构与算法分析:C语言描述(原书第2版简体中文版!!!)PDF+源代码+习题答案
数据结构与算法分析:C语⾔描述(原书第2版简体中⽂版!!!)PDF+源代码+习题答案转⾃:/Linux/2014-04/99735.htm数据结构与算法分析:C语⾔描述(原书第2版中⽂版!!!) PDF+源代码+习题答案数据结构与算法分析:C语⾔描述(原书第2版)是《data structures and algorithm analysis in c》⼀书第2版的简体中译本。
原书曾被评为20世纪顶尖的30部计算机著作之⼀,作者mark allen weiss在数据结构和算法分析⽅⾯卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到⼴泛好评.已被世界500余所⼤学⽤作教材。
在本书中,作者更加精炼并强化了他对算法和数据结构⽅⾯创新的处理⽅法。
通过c程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运⾏时间进⾏了分析。
数据结构与算法分析:C语⾔描述(原书第2版) PDF下载:百度⽹盘免费下载地址:(本⼈是从这⾥下载的,感谢原博主)全书特点如下: ●专⽤⼀章来讨论算法设计技巧,包括贪婪算法、分治算法、动态规划、随机化算法以及回溯算法 ●介绍了当前流⾏的论题和新的数据结构,如斐波那契堆、斜堆、⼆项队列、跳跃表和伸展树 ●安排⼀章专门讨论摊还分析,考查书中介绍的⼀些⾼级数据结构 ●新开辟⼀章讨论⾼级数据结构以及它们的实现,其中包括红⿊树、⾃顶向下伸展树。
treap树、k-d树、配对堆以及其他相关内容 ●合并了堆排序平均情况分析的⼀些新结果⽬录出版者的话专家指导委员会译者序前⾔第1章引论第2章算法分析第3章表、栈和队列第4章树第5章散列第6章优先队列(堆)第7章排序第8章不相交集ADT第9章图论算法第10章算法设计技巧第11章摊还分析第12章⾼级数据结构及其实现索引。
数据结构C语言版期末考试试题(有答案)
“数据结构”期末考试试题一、单选题(每小题2分,共12分)1.在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一〉next=HLB. p一〉next=HL;HL=p3C. p一>next=Hl;p=HL;D. p一〉next=HL一〉next;HL一〉next=p;2.n个顶点的强连通图中至少含有( ).A。
n—l条有向边 B.n条有向边C。
n(n—1)/2条有向边 D。
n(n一1)条有向边3。
从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1) B。
O(n)C。
O(1Ogzn) D.O(n2)4.由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为()。
A.24 B.48C. 72 D. 535.当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A。
整形 B。
引用型C。
指针型 D。
常值引用型·6.向一个长度为n的顺序表中插人一个新元素的平均时间复杂度为( )。
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叉树中,最多含有——结点。
5.假定一棵二叉树的结点数为18,则它的最小深度为—-,最大深度为——·6.在一棵二叉搜索树中,每个分支结点的左子树上所有结点的值一定--该结点的值,右子树上所有结点的值一定-—该结点的值.7.当向一个小根堆插入一个具有最小值的元素时,该元素需要逐层--调整,直到被调整到——位置为止.8.表示图的三种存储结构为——、—-和——-.9.对用邻接矩阵表示的具有n个顶点和e条边的图进行任一种遍历时,其时间复杂度为——,对用邻接表表示的图进行任一种遍历时,其时间复杂度为--。
2014数据结构(C语言版)期末复习攻略
以下内容来自大神的提示,整理得出,如有缺失,不胜荣幸。
第一章:绪论.2分第二章:线性表.12分2.2线性表的顺序表示和实现P21+2.3线性表的链式表示和实现P27(插入删除,算法效率,移动元素次数)P25两个公式第三章:栈和链表3.1.2栈的表示和实现(链栈,入栈和出栈算法)3.2栈的应用举例之数制转换P48第四章:串.2分基本概念,记住位序从1开始,不是0第五章:数组和广义表2分-10分。
基本算法和结构基本不考。
注意下地址计算类数据结构算法题目第六章:数和二叉树(重点)6.1基本术语P1186.2二叉树(存储方式,遍历(递归和非递归))6.4哈夫曼树,计算题必考6.6赫夫曼树考计算第七章:图7.2图的存储结构7.2.2链接表(入度出度代码)7.3图的遍历7.5.1拓扑排序以上内容建议复习时注意。
加油吧最后代码题请参考期末数据结构算法算法:#define MAX 20 //定义一个符号常量//定义有向图的结构类型typedef struct{int arcs[MAX][MAX]; //邻接矩阵int n,arcnum; //有向图当前顶点数、弧数int vexs[MAX]; //描述顶点的数组} ALGraph;(1)void setup(ALGraph &G)//创建有向图{int a,b,i,j,n;int flag=1,k=0;scanf("%d",&n); //输入顶点数ndo{scanf("%d%d",&a,&b);if(a==0&&b==0) //输入0 0结束flag=0;else{flag=1;G.arcs[a][b]=1;k++; //边数加1}}while(flag);G.n=n; //得到顶点数for(i=1;i<=G.n;i++)G.vexs[i]=i; //给顶点赋值G.arcnum=k; //边数for(i=1;i<=G.n;i++) //得到邻接矩阵for(j=1;j<=G.n;j++){if(G.arcs[i][j]==1)continue;elseG.arcs[i][j]=0;}printf("该有向图的邻接矩阵为:\n");for(i=1;i<=G.n;i++)//输出邻接矩阵for(j=1;j<=G.n;j++){printf("%d\t",G.arcs[i][j]);if(j==G.n)printf("\n");}}(2)void count(ALGraph G,int k)//求顶点k的入度(1<k<n){int i,sum=0;for(i=1;i<=G.n;i++)sum+=G.arcs[i][k];printf("顶点%d的入度为%d\n",k,sum);}(3)void BFS(ALGraph *G)//广度优先遍历以邻接矩阵存储的图G{int i;for(i=1;i<=G.n;i++)visited[i]=false; //设置成未访问for(i=1;i<=G.n;i++)if(!visited[i])BFSM(G,i); //vi未访问过,从vi开始BFS搜索}void BFSM(ALGraph *G,int k)//以vi为出发点,对邻接矩阵存储的图进行BFS 搜索{int i,j;cirQueue Q; //定义循环队列initQueue(&Q); //初始化为空队列printf("%d\t",G.vexs[k]); //访问原点vkvisited[k]=true;inQueue(&Q,k); //原点vk入队while(!QueueisEmpty(&Q)){i=outQueue(&Q); //vi出队for(j=1;j<=G.n;j++) //依次搜索vi的邻接点vjif(G.arcs[i][j]==1&&!visited[j]) //若vj未访问{ printf("%d\t",G.vexs[j]); //访问vjvisited[j]=true;inQueue(&Q,j); //访问过的vj入队列}}}输入提示:。
(完整版)计算机科学记忆口诀
(完整版)计算机科学记忆口诀计算机科学记忆口诀计算机科学是现代社会中不可或缺的一部分。
为了帮助研究者更好地掌握计算机科学的基本概念和原理,下面是一份计算机科学的记忆口诀,供大家参考和使用。
1. 数据结构- 数组:连续空间,随机访问数组:连续空间,随机访问- 链表:非连续空间,顺序访问链表:非连续空间,顺序访问- 队列:先进先出,尾部入队,头部出队队列:先进先出,尾部入队,头部出队- 栈:后进先出,顶部入栈,顶部出栈栈:后进先出,顶部入栈,顶部出栈- 树:分层结构,有根节点和子节点树:分层结构,有根节点和子节点- 图:节点和边的集合,可以有环图:节点和边的集合,可以有环2. 算法- 递归:自我调用,需有终止条件递归:自我调用,需有终止条件- 排序:冒泡、选择、插入、快速、归并、堆排序等排序:冒泡、选择、插入、快速、归并、堆排序等- 查找:二分查找、散列表等查找:二分查找、散列表等- 动态规划:将问题分解为相似子问题的组合动态规划:将问题分解为相似子问题的组合- 贪心算法:每步都选择当前最优解贪心算法:每步都选择当前最优解- 回溯算法:通过试错的方式寻找解决方案回溯算法:通过试错的方式寻找解决方案3. 编程语言- Python:简洁、易读、易学Python:简洁、易读、易学- Java:跨平台、面向对象Java:跨平台、面向对象- C:高性能、可移植、低级别C:高性能、可移植、低级别- C++:C语言的扩展,支持面向对象和泛型编程C++:C语言的扩展,支持面向对象和泛型编程- JavaScript:用于前端开发和浏览器脚本JavaScript:用于前端开发和浏览器脚本- Ruby:简洁、优雅、动态类型Ruby:简洁、优雅、动态类型以上口诀是计算机科学中的一些基本概念和原理的简单总结。
希望通过这些口诀,大家能更好地理解和记忆计算机科学的知识,为学习和实践提供帮助。
C语言考试重点考前必看吃透必过
C语言最重要的知识点总体上必须清楚的:1)程序结构是三种:顺序结构、选择结构(分支结构)、循环结构。
2)读程序都要从main()入口,然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。
3)计算机的数据在电脑中保存是以二进制的形式.数据存放的位置就是他的地址.4)bit是位是指为0或者1。
byte是指字节,一个字节=八个位.概念常考到的:1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、definePI3.1415926;这个写法是错误的,一定不能出现分号。
3、每个C语言程序中main函数是有且只有一个。
4、在函数中不可以再定义函数。
5、算法:可以没有输入,但是一定要有输出。
6、break可用于循环结构和switch语句。
7、逗号运算符的级别最低,赋值的级别倒数第二。
第一章C语言的基础知识第一节、对C语言的基础认识1、C语言编写的程序称为源程序,又称为编译单位。
2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。
3、一个C语言程序有且只有一个main函数,是程序运行的起点。
第二节、熟悉vc++1、VC是软件,用来运行写的C语言程序。
2、每个C语言程序写完后,都是先编译,后链接,最后运行。
(.c---✍.obj---✍.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe 文件才可以运行。
(常考!)第三节、标识符1、标识符(必考内容):合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了2、标识符分为关键字、预定义标识符、用户标识符。
关键字:不可以作为用户标识符号。
maindefinescanfprintf都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
预定义标识符:背诵definescanfprintfinclude。
c语言得分技巧
c语言得分技巧C语言是一门广泛应用于计算机编程领域的高级编程语言,掌握一些得分技巧可以提高我们在C语言编程中的效率和准确性。
本文将介绍一些C语言的得分技巧,帮助读者更好地应用C语言进行编程。
一、合理使用变量和常量在C语言编程中,合理使用变量和常量是非常重要的。
变量可以存储程序运行过程中需要改变的值,而常量是不可改变的值。
在使用变量和常量时,应为其命名选择具有描述性的名称,以便于理解和维护代码。
同时,在声明变量时,应尽量将其初始化为一个初始值,以避免出现未定义的行为。
二、正确使用数组和指针数组和指针是C语言中常用的数据结构和概念。
在使用数组时,应注意数组越界的问题,避免访问不存在的内存地址。
另外,可以使用指针来操作数组元素,提高代码的效率和灵活性。
但是,在使用指针时需要注意指针的空指针问题,避免出现空指针引发的错误。
三、注意内存管理在C语言中,内存管理是非常重要的一部分。
正确地分配和释放内存可以避免内存泄漏和野指针的问题。
在动态分配内存时,应使用malloc函数分配内存,并使用free函数释放内存。
同时,应该注意在使用指针指向已释放的内存时出现的悬空指针问题。
四、合理使用循环和条件语句循环和条件语句是C语言中流程控制的重要部分。
在使用循环时,应选择合适的循环结构,如for循环、while循环和do-while循环,以实现不同的功能需求。
在编写条件语句时,应注意条件表达式的准确性和逻辑性,避免出现歧义或错误的判断。
五、规范化代码风格规范化代码风格有助于提高代码的可读性和可维护性。
在编写C语言代码时,应遵循一定的代码风格,如缩进、空格、命名规范等。
同时,应注意代码的注释,对代码中关键部分进行适当的注释,方便他人理解和修改代码。
六、调试技巧调试是程序开发过程中必不可少的一环。
在C语言编程中,可以使用调试工具来帮助定位和解决程序中的错误。
常用的调试工具有GDB和Valgrind等。
通过调试工具,可以逐步执行程序,观察变量的值和程序的执行流程,从而找出程序中的错误。
C语言运算符优先级及记忆口决
=====运算符的优先级与结合律(从高到低排列)=====优先级名称符号结合性1 数组下标[] 左结合性1 函数调用() 左结合性1 结构和联合的成员. -> 左结合性1 自增(后缀)++ 左结合性1 自减(后缀)-- 左结合性2 自增(前缀)++ 右结合性2 自减(前缀)-- 右结合性2 取地址& 右结合性2 间接寻址* 右结合性2 一元正号+ 右结合性2 一元负号- 右结合性2 按位求反~ 右结合性2 逻辑非! 右结合性2 计算内存长度sizeof 右结合性3 强制类型转换() 右结合性4 乘法类的* / % 左结合性5 加法类的+ - 左结合性6 按位移位<< >> 左结合性7 关系< > <= >= 左结合性8 判等== != 左结合性9 按位与& 左结合性10按位异或^ 左结合性11按位或| 左结合性12逻辑与&& 左结合性13逻辑或|| 左结合性14条件?: 右结合性15赋值= *= /= %=右结合性+= -= <<= >>=&= ^= |=16逗号, 左结合性C语言运算符优先级等级口诀[圆方括号、箭头一句号][自增自减非反负、针强地址长度][乘除,加减,再移位][小等大等、等等不等][八位与],[七位异],[六位或],[五与],[四或],[三疑],[二赋],[一真逗](其中“[]”号为一个等级分段)说明:“圆方括号、箭头一句号”指的是第15级的运算符。
其中【圆方括号】为“()、[]”,【箭头】指的是指向结构体成员运算符“->”,【句号】指的是结构体成员运算符“.”;“自增自减非反负、针强地址长度”指的是第14级的运算符。
其中【非】指的是逻辑运算符“!”,【反】指的是按位取反运算符“~”,【负】指的是负号运算符“-”,【针】指的是指针运算符“*”,【强】指的是强制类型转换运算符,【地址】指的是地址运算符“&”,【长度】指的是长度运算符“sizeof ”;“乘除,加减,再移位”【移位】指的是左移运算符“<<”和右移运算符“>>”,其中【除】还包括了取余运算符“%”;“小等大等、等等不等”【小等大等】指的是第10级到第9级的运算符:<、<=、>和>=,【等等】指的是等于运算符“==”,【不等】指的是不等于运算符“!=”;“八位与,七位异,六位或”【八位与】指的是第8级的按位与运算符“&”,【七位异】指的是第7级的按位异或运算符“^”,【六位或】指的是第6级的按位或运算符“||”;“五与,四或”【五与】指的是第5级的逻辑与运算符“&&”,【四或】第4级和逻辑或运算符“||”;“三疑,二赋,一真逗”指的是第3级到第1级的运算符。
《数据结构(C语言版)》习题指导与解答
附录2习题指导与解答习题一解答1.数据是人们利用文字符号、数字符号以及其他规定的符号对客观现实世界的事物及其活动所做的抽象描述。
它是计算机程序加工的‚原料‛。
表示一个事物的一组数据称为一个数据元素,它是数据的基本单位,在计算机中通常作为一个整体来进行考虑和处理。
一般情况下,一个数据元素由若干个数据项构成。
数据对象是性质相同的数据元素的集合,是数据的一个子集。
例如:描述N个学生的有关信息的N个数据元素构成了一个数据对象。
2.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
具体来说,数据结构包含三个方面的内容,既数据的逻辑结构、数据的存储结构(或称物理结构)和对数据所施加的一组操作。
3.数据的逻辑结构是数据元素之间本身所固有的独立于计算机的一种结构,这种结构可以用数据元素之间固有的关系的集合来描述。
数据的存储结构(或物理结构)是逻辑结构在计算机存储器中的具体存放方式的体现,是逻辑结构在计算机存储器中的映像。
4.根据数据元素之间存在的关系的不同特性,数据结构通常可以分为如下4类基本结构:(1)线性结构。
元素之间存在一个一对一的线线关系,即除了第一个元素和最后一个元素外,每个元素都有一个直接前驱和一个直接后继,第一个元素有一个后继,最后一个元素有一个直接前驱。
例如学生档案管理系统中学生记录之间的关系即为线性关系;(2)树形结构。
数据元素之间存在着一个对多个的关系。
例如,老师T指导3个硕士研究生G1,G2,G3;每个研究生Gi(i=1,2,3)又分别指导3个本科生Si1,Si2,Si3;则数据元素之间的呈现树形结构。
(3)图形结构或网状结构。
数据元素之间存在多个对多个的关系。
如城市交通网络中城市之间的交通道路的连接关系就是一个网状结构。
(4)集合结构。
数据元素之间无任何关系。
5.抽象数据类型通常是指由用户定义,用以表示实际应用问题的数据模型,一般由基本数据类型或其他已定义的抽象数据类型以及定义在该模型上的一组操作组成。
2014年陕西省数据结构(C++)考试重点和考试技巧
19、已知关键字序列为{66,82,25,51,98,108},利用快速排序方法,以第一个元素为基准得到的一趟排序结果为
A.{25,51,66,82,98,108}
B.{25,51,66,98,82,108}
C.树中两个权值最小的结点可能是兄弟结点
D.同一结点集构造的二叉树中,哈夫曼树的WPL最小
8、在以下的叙述中,正确的是 B 。
A.线性表的顺序存储结构优于链表存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
9、若进栈序列为1,2,3,4,则不可能得到的出栈序列是( C )。
C.O(1Ogzn) D.O(n2)
52、在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是 B 。
A.O(1) B.O(n) C.O(n2) D.O(nlog2n)
53、对于图1所示的二叉树,其后序序列为(C )。
A)ABDECFG B)DBEAFCG
6、以下说法正确的是 D 。
A.数据项是数据的基本单位
B.数据元素是数据的最小单位
C.数据结构是带结构的数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
7、下列关于哈夫曼树的叙述中,错误的是
A.用n个结点构造的哈夫曼树是唯一的
B.哈夫曼树中只有度为0或度为2的结点
D.一些表面上很不相同的数据可以有相同的逻辑结构
49、已知关键字序列为{66,82,25,51,98,108},利用快速排序方法,以第一个元素为基准得到的一趟排序结果为
数据结构与算法复习题10(C语言版)讲课稿
数据结构与算法复习题10(C语言版)习题9解答判断题:1.用向量和单链表表示的有序表均可使用折半查找方法来提高查找速度。
答:FALSE (错。
链表表示的有序表不能用折半查找法。
)2.有n个数据放在一维数组A[1..n]中,在进行顺序查找时,这n个数的排列有序或无序其平均查找长度不同。
答:FALSE (错。
因顺序查找既适合于有序表也适合于无序表;对这两种表,若对于每个元素的查找概率相等,则顺序查找的ASL相同,并且都是(n+1)/2;对于查找概率不同的情况,则按查找概率由大到小排序的无序表其ASL要比有序表的ASL小。
)3.折半查找是先确定待查有序表记录的范围,然后逐步缩小范围,直到找到或找不到该记录为止。
( )答:TRUE4.哈希表的查找效率主要取决于哈希表哈希表造表时选取的哈希函数和处理冲突的方法。
答:TRUE5.查找表是由同一类型的数据元素(或记录)构成的集合。
答:TRUE单选题:6.对于18个元素的有序表采用二分(折半)查找,则查找A[3]的比较序列的下标为( )。
A. 1、2、3B. 9、5、2、3C. 9、5、3D.9、4、2、3答:D (第一次⎣⎦2/)181(+ = 9,第二次⎣⎦2/)81(+ = 4,第三次⎣⎦2/)31(+ = 2, (第四次⎣⎦2/)33(+ = 3,故选D.7. 顺序查找法适合于存储结构为____________的线性表。
A.散列存储B.顺序存储或链式存储C.压缩存储D.索引存储答:B8.对线性表进行二分查找时,要求线性表必须( )。
A .以顺序方式存储 B. 以链接方式存储C .以顺序方式存储,且结点按关键字有序排序D. 以链接方式存储,且结点按关键字有序排序答:C9.设哈希表长m=14,哈希函数为H(k) = k MOD 11。
表中已有4个记录(如下图所示),如果用二次探测再散列处理冲突,关键字为49的记录的存储地址是( )。
A .8 B. 3 C .5 D. 9答:D (计算H(k),即H(49)=49 mod 11 = 5,冲突,进行二次探测再散列。
数据结构c语言版(题目)
分类:编程思想和算法2012-09-15 22:24 1759 人阅读评论(0)收藏举报如果TCPhashlistJuli 采用线性表的顺序存储结构,则可以随机存取表中任一终端,但插入和删除终端时,需要移动大量元素,巧妙地终端离线不进行删除操作。
数组,存储的元素应该是线性表顺序存储结构的数据结构。
线性表题目类型:线性表在顺序结构上各种操作的实现;线性链表的各种操作;两个或多个线性表的各种操作;循环链表和双向链表;稀疏多项式及其运算在线性表的两种存储结构上的实现。
线性表在顺序结构上各种操作的实现题目1:(线性表顺序存储结构上的操作—Delete )从顺序存储结构的线性表a 中删除第i个元素起的k个元素。
(《数据结构题集C语言版》P16)题目2:(线性表顺序存储结构上的操作_lnsert )设顺序表va中的数据元素递增有序。
试写一算法,将x插入到循序表的适当位置上,以保持该表的有序性。
(《数据结构题集C语言版》P17)题目3:(线性表顺序存储结构上的操作_逆置)试写一算法,实现顺序表的就地逆置,即利用原表的存储空间将线性表逆置。
(《数据结构题集C语言版》2.21)线性表线性链表的各种操作题目1:( Insert )试写一算法,在无头结点的动态单链表上实现线性表的Insert(L,i,b), 并和在带头结点的动态单链表上实现同样操作的算法进行比较。
(《数据结构题集C语音版》P17)题目2:(Delete )同上题要求,实现线性表操作Delete(L,i).题目3:已知线性表中的元素以值递增有序排序,并以单链表作为存储结构。
试写一高效算法,删除表中所有值大于mink且小于maxk的元素(若表中存在这样的元素)同时释放被删除结点空间,并分析你的算法的事件复杂度(注意:mink和maxk是给定的两个参变量,它们的值可以和表中的元素相同,也可以不同)。
(《数据结构题集C语言版》P17)题目4:同上题条件,试写一高效算法,删除表中所有值相同的多余元素(使得操作后的线性表所有元素的值均不相同),同是释放被删结点空间,并分析你算法的时间复杂度。
数据结构实用教程(C语言版) 第3章 栈和队列
3.1.1 栈的概念
假设有一个栈S=(a1,a2,…,an),栈 中元素按a1,a2,…,an的次序进栈后, 进栈的第一个元素a1为栈底元素,出栈的第 一个元素an为栈顶元素,也就是出栈的操作 是按后进先出的原则进行的,其结构如图31所示。
图3-1栈结构示意图
返回到本节目录
3.1.2栈的基本操作
3.1.3顺序栈
由于栈是操作受限制的线性表,因此与线性表类似,栈也 有两种存储结构,即顺序存储结构和链式存储结构。 1. 顺序栈的定义 栈的顺序存储结构称为顺序栈。类似于顺序表的类型定义,顺 序栈是用一个预设的足够长度的一维数组和一个记录栈顶元素 位置的变量来实现。顺序栈中栈顶指针与栈中数据元素的关1.3顺序栈
3. 顺序栈的基本操作实现
(3)进栈操作 进栈操作的过程如图3-3所示。先判断栈S如图3-3(a) 是否为满,若不满再将记录栈顶的下标变量top加1如 图3-3(b),最后将进栈元素放进栈顶位置上如图33(c)所示,算法描述见算法3.3。
图3-3 进栈操作过程图
返回到本节目录
栈除了在栈顶进行进栈与出栈外,还有初始化、判空 等操作,常用的基本操作有: (1)初始化栈InitStack(S)。其作用是构造一个空 栈 S。 (2)判断栈空EmptyStack(S)。其作用是判断是 否是空栈,若栈S为空,则返回1;否则返回0。 (3)进栈Push(S,x)。其作用是当栈不为满时,将 数据元素x插入栈S中,使其为栈S的栈顶元素。 (4)出栈Pop(S,x)。其作用是当栈S不为空时,将 栈顶元素赋给x,并从栈S中删除当前栈顶元素。 (5)取栈顶元素GetTop(S,x)。其作用是当栈S不 为空时,将栈顶元素赋给x并返回,操作结果只是 读取栈顶元素,栈S不发生变化。 返回到本节目录
数据结构耿国华c语言版答案
数据结构耿国华c 语言版答案【篇一:《数据结构——c语言描述》习题及答案耿国华 2】题一、问答题1.什么是数据结构?2.四类基本数据结构的名称与含义。
3.算法的定义与特性。
4.算法的时间复杂度。
5.数据类型的概念。
6.线性结构与非线性结构的差别。
7.面向对象程序设计语言的特点。
8.在面向对象程序设计中,类的作用是什么?9.参数传递的主要方式及特点。
10.抽象数据类型的概念。
二、判断题1.线性结构只能用顺序结构来存放,非线性结构只能用非顺序结构来存放。
2.算法就是程序。
3.在高级语言(如 c、或 pascal )中,指针类型是原子类型。
三、计算下列程序段中x=x+1 的语句频度for(i=1;i=n;i++)for(j=1;j=i;j++)for(k=1;k=j;k++)x=x+1;[提示 ]:⋯f(n) = [ (1+2+3+⋯⋯+n) + (12 + 22 + 32 +⋯⋯+ n2 ) ] / 2=[ (1+n)n/2 + n(n+1)(2n+1)/6 ] / 2=n(n+1)(n+2)/6=n3/6+n2/2+n/3区分语句频度和算法复杂度:o(f(n)) = o(n3)四、试编写算法求一元多项式pn(x)=a0+a1x+a2x2+a3x3+ ⋯anxn的值 pn(x0) ,并确定算法中的每一语句的执行次数和整个算法的时间复杂度,要求时间复杂度尽可能的小,规定算法中不能使用求幂函数。
注意:本题中的输入 ai(i=0,1, ⋯,n), x和 n,输出为 pn(x0). 通常算法的输入和输出可采用下列两种方式之一:(1)通过参数表中的参数显式传递;(2)通过全局变量隐式传递。
试讨论这两种方法的优缺点,并在本题算法中以你认为较好的一种方式实现输入和输出。
[提示 ]: float polyvalue(float{ ⋯⋯}核心语句:p=1; (x的零次幂)s=0;i 从 0 到 n 循环s=s+a[i]*p;p=p*x;或:p=x; (x的一次幂)s=a[0];i 从 1 到 n 循环s=s+a[i]*p;p=p*x;a[ ], float x, int n)实习题设计实现抽象数据类型“有理数”。
严蔚敏《数据结构》考研C语言版考研笔记与考研真题
严蔚敏《数据结构》考研C语言版考研笔记与考研真题第一部分考研真题精选一、单项选择题1若元素a,b,c,d,e,f依次进栈,允许进栈、退栈操作交替进行,但不允许连续三次进行退栈操作,则不可能得到的出栈序列是()。
[计算机统考(408)2010年研]【答案】D查看答案【解析】4个选项所给序列的进、出栈操作序列分别为:选项A:Push,Push,Push,Push,Pop,Pop,Push,Pop,Pop,Push,Pop,Pop选项B:Push,Push,Push,Pop,Pop,Push,Pop,Pop,Push,Pop,Push,Pop选项C:Push,Push,Pop,Push,Pop,Pop,Push,Push,Pop,Push,Pop,Pop选项D:Push,Pop,Push,Push,Push,Push,Push,Pop,Pop,Pop,Pop,Pop按照题目要求,不允许连续三次进行退栈操作,所以选项D所给序列为不可能得到的出栈顺序。
2若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b,c,d,e,a,则根结点的孩子结点()。
[计算机统考(408)2012年研]A.只有eB.有e、bC.有e、cD.无法确定【答案】A查看答案【解析】由题目可知,若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b,c,d,e,a,其中a为这棵二叉树的根结点,接下来,在前序遍历的第二个结点为e,而后序遍历的倒数第二个结点为e,说明a的孩子结点只有e。
3循环队列放在一维数组A[0..M-1]中,end1指向队头元素,end2指向队尾元素的后一个位置。
假设队列两端均可进行入队和出队操作,队列中最多能容纳M-1个元素。
初始时为空,下列判断队空和队满的条件中,正确的是()。
[计算机统考(408)2014年研]A.队空:end1==end2;队满:end1==(end2+1)mod MB.队空:end1==end2;队满:end2==(end1+1)mod (M-1)C.队空:end2==(end1+1)mod M;队满:end1==(end2+1)mod M D.队空:end1==(end2+1)mod M;队满:end2==(end1+1)mod (M -1)【答案】A查看答案【解析】在循环队列中,在少用一个元素空间的前提下,可约定入队前,测试尾指针在循环意义下加1后是否等于头指针,若相等,则队满。
数据结构(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.在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。
数据结构(C语言版)第3章 栈和队列
typedef struct StackNode {
SElemType data;
S
栈顶
struct StackNode *next;
} StackNode, *LinkStack;
LinkStack S;
∧
栈底
链栈的初始化
S
∧
void InitStack(LinkStack &S ) { S=NULL; }
top
C
B
base A
--S.top; e=*S.top;
取顺序栈栈顶元素
(1) 判断是否空栈,若空则返回错误 (2) 否则通过栈顶指针获取栈顶元素
top C B base A
Status GetTop( SqStack S, SElemType &e) { if( S.top == S.base ) return ERROR; // 栈空 e = *( S.top – 1 ); return OK; e = *( S.top -- ); ??? }
目 录 导 航
Contents
3.1 3.2 3.3 3.4 3.5
栈和队列的定义和特点 案例引入 栈的表示和操作的实现 栈与递归 队列的的表示和操作的实现
3.6
案例分析与实现
3.2 案例引入
案例3.1 :一元多项式的运算
案例3.2:号匹配的检验
案例3.3 :表达式求值
案例3.4 :舞伴问题
目 录 导 航
top B base A
清空顺序栈
Status ClearStack( SqStack S ) { if( S.base ) S.top = S.base; return OK; }
2014陕西省数据结构基础考试技巧与口诀
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
6、n个顶点的图的最小生成树必定( D ),是不正确的描述。
A)不唯一 B)权的总和唯一
C)不含回路 D)有n条边
7、设一数列的顺序为1,2,3,4,5,6,通过栈结构不可能排成的顺序数列为( B )。
D)内部结构和外部结构
32、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
33、采用链结构存储线性表时,其地址( B )。
D)线性表采用顺序存储,便于进行插入和删除操作。
28、在一个单链表中,已知q结点是p结点的前趋结点,若在q和p之间插入s结点,则须执行( A ) 。
A)q->next=s; s->next=p; B)s->next=p->next; p->next=s;
C)p->next=s->next; s->next=p D)p->next=s; s->next=q;
D) E, D, C, B, A
19、链式存储的存储结构所占存储空间( A )。
A)分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针
B)只有一部分,存放结点值
C)只有一部分,存储表示结点间关系的指针
D)分两部分,一部分存放结点值,另一部分存放结点所占单元数
A)必须是连续的 B)连续不连续都可以
C语言程序填空题答题技巧
C语言程序填空题答题技巧程序填空题是计算机等级考试中的重点中度难点,占有的分值为30 分。
做填空题时注意掌握答题技巧。
填空题的分类:(一)、数学题目解题方法:量赋初值,如果以后用到的是加减运算,则赋初值0或者为是0.0;如果以后用到的是乘除运算,则赋初值为1或者是1.0;2.循环条件的填空,分析表达式的规律,看表达式中的最后一项的值是否到了第m项或者是第n项,如果到了第m或者第n项,则在循环中的第二个表达式中用到的是i<>或者是i<>3.循环条件中如果用的是while 语句,则循环变量的初值应该在while 的外面定义和赋初值,在循环语句中必须给变量自加或者是自减。
如果没有则一般填的是i++;(二)、字符串题目1、循环的条件是判断该字符是否和结束符\0相等,如果相等,说明该字符串结束,否则说明没有结束,继续循环。
While(s[i]!=’\0’)2、把一个数字字符转变成对应的数值的格式是:ch=’1’-‘0’;把大写字母转变为小写字母的格式:c h=c h+32 ;把小写字母转变为大写字母的格式为:ch=ch-32 ;3、区分好字符数组中的指针和指针所指的值的关系。
在循环语句中,当指针往后走一个位置的时候,用的是指针的自加,而不是指针所指的值的自加。
int * a4、掌握字符数组中的函数的使用的格式。
即:strlen(a)、strcmp(a,b)、strcpy(a,b)、sizeof 、strcat 的使用格式。
注意里面的格式中使用的都是指针。
5、字符数组结束时都有一个结束符:‘\0’;在字符数组中的题目中的结束后要加上一个结束符。
(三)、结构体题目结构体类型的题目1、看清题目的意思。
2、定义结构体变量时的格式。
struct student *stu1 stu1->name3、结构体中成员的调用格式。
结构体中的成员分为多种类型,调用结构体重的成员,使用的是“.”或者是“—>”运算符。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8、数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
9、n个顶点的强连通图中至少含有( )。
A.n—l条有向边 B.n条有向边
27、在二维数组a[9][10]中:每个数组元素占用3个存储空间,从首地址SA开始按行优先
连续存放,则元素a[8][5]的起始地址是
A.SA+141 B.SA+144 C.SA+222 D.SA+255
28、若进栈序列为1,2,3,4,则不可能得到的出栈序列是( C )。
C.n(n—1)/2条有向边 D.n(n一1)条有向边
10、以下说法正确的是 D 。
A.数据项是数据的基本单位
B.数据元素是数据的最小单位
C.数据结构是带结构的数据项的集合
D.一些表面上很不相同的数据可以有相同的逻辑结构
11、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.对应顶点v的度
B.对应顶点v的出度
C.对应顶点v的入度
D.依附于对应顶点v的边数
14、对于图1所示的二叉树,其后序序列为(C )。
A)ABDECFG B)DBEAFCG
C)DEBFGCA D)GFCEBDA
15、已知关键字序列为{66,82,25,51,98,108},利用快速排序方法,以第一个元素为基准得到的一趟排序结果为
32、算法分析的目的是 C ,算法分析的两个主要方面是 A 。
(1)A.找出数据结构的合理性 B.研究算法中的输入和输出的关系
C.分析算法的效率以求改进 C.分析算法的易读性和文档性
(2)A.空间复杂度和时间复杂度 B.正确性和简明性
C.可读性和文档性 D.数据复杂性和程序复杂性
A.删除单链表中的第一个元素
B.删除单链表中的最后一个元素
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
37、对于图1所示的二叉树,其后序序列为(C )。
A)ABDECFG B)DBEAFCG
C)DEBFGCA D)GFCEBDA
A.顺序栈需要判定栈空,链栈也需要判定
B.顺序栈需要判定栈空,而链栈不需要判定
C.顺序栈不需要判定栈空,而链栈需要判定
D.顺序栈不需要判定栈空,链栈也不需要判定
47、当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
17、若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用
D 存储方式最节省运算时间。
A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表
18、衡量查找算法效率的主要标准是( C )。
A)元素个数 B)所需的存储量
A.对应顶点v的度
B.对应顶点v的出度
C.对应顶点v的入度
D.依附于对应顶点v的边数
12、数据结构在计算机内存中的表示是指 A 。
A.数据的存储结构 B.数据结构 C.数据的逻辑结构 D.数据元素之间的关系
13、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.{25,51,66,82,98,108}
B.{25,51,66,98,82,108}
C.{51,25,66,108,98,82}
D.{51,25,66,82,98,108}
16、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
A.整形 B.引用型
C.指针型 D.常值引用型?
45、数据结构中,从逻辑上可以把数据结构分成(?)。
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
46、栈采用不同的存储方式时,下列关于出栈过程的叙述中,正确的是
A.整形 B.引用型
C.指针型 D.常值引用型?
48、G是一个非连通无向图,共28条边,则该图至少有( )个顶点
A 6 B 7 C 8 D 9
49、G是一个非连通无向图,共28条边,则该图至少有( )个顶点
41、由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
A.24 B.48
C. 72 D. 53
42、数据结构中,从逻辑上可以把数据结构分成(?)。
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
6、如果对线性表的操作只有两种,即删除第一个元素,在最后一个元素的后面插入新元素,则最好使用 B 。
A.只有表头指针没有表尾指针的循环单链表
B.只有表尾指针没有表头指针的循环单链表
C.非循环双链表
D.循环双链表
7、n个顶点的强连通图中至少含有( )。
A.n—l条有向边 B.n条有向边
A 插入排序和快速排序 B 归并排序和快速排序
C 选择排序和归并排序 D 插入排序和归并排序
21、长度为n的顺序表,删除位置i上的元素(0≤i≤n一1),需要移动的元素个数为
A.n—i B.n—i—l C.i D.i+1
1、深度为k的完全二叉树至多有( )个结点
A B C D
2、在以下的叙述中,正确的是 B 。
A.线性表的顺序存储结构优于链表存储结构
B.二维数组是其数据元素为线性表的线性表
C.栈的操作方式是先进先出
D.队列的操作方式是先进后出
3、在一个具有n个结点的有序单链表中插入一个新结点并仍然保持有序的时间复杂度是 B 。
A.O(1) B.O(n) C.O(n2) D.O(nlog2n)
4、在数据结构中,与所使用的计算机无关的是数据的 A 结构。
A.逻辑 B.存储 C.逻辑和存储 D.物理
C.数据元素之间的关系 D.数据的存储方法
35、下列选项中,其平均查找性能与基于二叉排序树的查找相当的是
A.二分查找 B.顺序查找 C.分块查找 D.索引顺序查找
36、在一个长度为n(n>1)的单链表上,设有头和尾两个指针,执行 B 操作与链表的长度有关。
A 6 B 7 C 8 D 9
50、有向图采用邻接矩阵存储,某一行中非零元素的个数等于
A.对应顶点v的度
B.对应顶点v的出度
C.对应顶点v的入度
D.依附于对应顶点v的边数
51、在决定选取何种存储结构时,一般不考虑 A 。
ቤተ መጻሕፍቲ ባይዱ
22、栈采用不同的存储方式时,下列关于出栈过程的叙述中,正确的是
A.顺序栈需要判定栈空,链栈也需要判定
B.顺序栈需要判定栈空,而链栈不需要判定
C.顺序栈不需要判定栈空,而链栈需要判定
D.顺序栈不需要判定栈空,链栈也不需要判定
23、由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )。
5、在一个单链表HL中,若要向表头插入一个由指针p指向的结点,则执行( )。
A. HL=ps p一>next=HL
B. p一>next=HL;HL=p3
C. p一>next=Hl;p=HL;
D. p一>next=HL一>next;HL一>next=p
A.各结点的值如何 B.结点个数的多少
C.对数据有哪些运算 D.所用的编程语言实现这种结构是否方便。
52、在二维数组a[9][10]中:每个数组元素占用3个存储空间,从首地址SA开始按行优先
C)平均查找长度 D)算法难易程度
19、当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.整形 B.引用型
C.指针型 D.常值引用型?
20、下述排序方法中,时间性能和待排序记录的初始状态无关的是( )
33、衡量查找算法效率的主要标准是( C )。
A)元素个数 B)所需的存储量
C)平均查找长度 D)算法难易程度
34、在存储数据时,通常不仅要存储各数据元素的值,而且还要存储 C 。
A.数据的处理方法 B.数据元素的类型
38、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。
A.数据元素具有同一特点
B.不仅数据元素所包含的数据项的个数要相同,而且对应的数据项的类型要一致
C.每个数据元素都一样
D.数据元素所包含的数据项的个数要相等
39、不带头结点的单链表head为空的判定条件是 A 。
43、n个顶点的强连通图中至少含有( )。
A.n—l条有向边 B.n条有向边
C.n(n—1)/2条有向边 D.n(n一1)条有向边
44、当一个作为实际传递的对象占用的存储空间较大并可能需要修改时,应最好把它说明为( )参数,以节省参数值的传输时间和存储参数的空间。
A.24 B.48
C. 72 D. 53
24、数据结构中,从逻辑上可以把数据结构分成(?)。
?A.动态结构和静态结构?B.紧凑结构和非紧凑结构?C.线性结构和非线性结构?D.内部结构和外部结构
25、通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着 B 。
A 6 B 7 C 8 D 9
31、不带头结点的单链表head为空的判定条件是 A 。