数据结构2010年考研分析
山西省考研计算机科学与技术复习资料数据结构常见算法解析
山西省考研计算机科学与技术复习资料数据结构常见算法解析算法是计算机科学与技术领域的重要核心内容之一,而数据结构是算法实现的基础。
在山西省考研计算机科学与技术的复习中,掌握常见的数据结构和算法解析是至关重要的。
本文将针对山西省考研计算机科学与技术专业的考试要求,为考生提供一份数据结构常见算法的解析资料。
一、线性表1.1 顺序表1.1.1 插入操作在顺序表中插入一个元素,需要将插入位置后的元素依次后移一个位置,然后将新元素插入到空出的位置。
1.1.2 删除操作在顺序表中删除一个元素,需要将删除位置后的元素依次前移一个位置。
1.2 链表1.2.1 单链表单链表由节点组成,每个节点包含数据域和指针域。
插入和删除操作只需要改变指针域即可。
1.2.2 双链表双链表在单链表的基础上,每个节点多了一个指向前驱节点的指针域。
1.3 栈和队列1.3.1 栈栈是一种具有特定操作限制的线性表,只允许在表尾进行插入和删除操作,符合先进后出的原则。
1.3.2 队列队列也是一种具有特定操作限制的线性表,只允许在表尾进行插入操作,在表头进行删除操作,符合先进先出的原则。
二、树2.1 二叉树2.1.1 先序遍历先序遍历是指按照根节点-左子树-右子树的顺序遍历二叉树。
2.1.2 中序遍历中序遍历是指按照左子树-根节点-右子树的顺序遍历二叉树。
2.1.3 后序遍历后序遍历是指按照左子树-右子树-根节点的顺序遍历二叉树。
2.2 平衡二叉树平衡二叉树要求左子树和右子树的高度差不超过1,在插入和删除操作时,需要对树进行旋转操作以保持平衡。
2.3 B树B树是一种自平衡的搜索树,适用于大数据量的存储和快速查找。
三、图3.1 图的存储结构3.1.1 邻接矩阵邻接矩阵是通过一个二维数组来表示图的连接关系。
3.1.2 邻接表邻接表是通过一个链表数组来表示图的连接关系。
3.2 图的遍历算法3.2.1 深度优先搜索(DFS)深度优先搜索是从图的某个顶点开始,递归遍历其邻接点,直到没有未访问的邻接点为止。
历年计算机考研试卷结构与难度分析
历年计算机考研试卷结构与难度分析业务课名称:计算机考生须知:1.答案必须写在答题纸上,写在其他纸上无效。
2.答题时必须使用蓝、黑色墨水笔或圆珠笔做答,用其他答题不给分,不得使用涂改液。
1.历年计算机统考的试卷结构分析:计算机考研专业课在2009年实行了第一次统考,统考科目包括四门计算机专业课:数据结构、计算机组成原理、操作系统和计算机网络,这四门课程合在一起称为计算机科学专业基础综合,共150分。
四门专业课在试卷中所占的分数分别为:数据结构45分,计算机组成原理45分,操作系统35分,计算机网络25分。
从年初考过的真题情况来看,计算机专业基础综合考试一共有两种题型:单选题和综合应用题。
第一种题型是单选题,共40道题,每题2分,满分80分。
其中1-10题是数据结构部分,11-22题是计算机组成原理部分,23-32题是操作系统部分,33-40题是计算机网络部分;第二种题型是综合应用题,共7道大题,满分70分。
按题目编号来说,41题、42题是数据结构题,分值各为10分和15分,43和44题是计算机组成原理题,各占8分和13分,45题和46题是操作系统题,各占7分和8分,47题是计算机网络题,分值为9分。
2.计算机统各科难度分析:数据结构★★★★考试内容包括:线性表、栈、队列和数组、树和二叉树、图、查找和内部排序。
考生复习时首先要深刻理解数据结构的三要素:逻辑结构、存储结构以及在其上定义的各种基本操作,要把复习的重点放在掌握常用数据结构的这三个要素上面。
举例来说,栈这种数据结构有两种实现方式(即存储方式):顺序栈和链式栈,经过一到两轮的复习之后,考生应该能够比较熟练地使用C语言(当然也可以用C++等高级语言)写出这两种方式下栈的定义以及初始化、进栈、出栈、返回栈顶元素等各种基本操作的算法实现,有条件的同学,可以上机调试算法。
也就是说,对于每一种常用的数据结构,在掌握了它的逻辑结构和存储结构后,一定要亲自动手,自己写出各种基本操作的算法实现,这个过程需要认真体会和反复琢磨。
考研数据结构知识点精讲
考研数据结构知识点精讲为了帮助考研学子更好地掌握数据结构的知识,本文将对考研中常见的数据结构知识点进行精讲。
无论你是准备参加计算机科学与技术专业考研还是软件工程专业考研,本文都将为你提供有用的知识点和学习方法。
一、数据结构的基本概念数据结构是计算机科学中非常重要的一个基础知识点,它是描述数据元素之间关系的逻辑关系和存储结构的方法。
数据结构可以分为线性结构和非线性结构两大类。
线性结构包括数组、链表、栈和队列;非线性结构包括树和图。
1.1 数组数组是一种线性结构,它由一组连续的内存空间组成,用于存储相同类型的数据元素。
数组的特点是可以通过下标快速访问特定位置的元素,但插入和删除元素时需要移动其他元素。
1.2 链表链表也是一种线性结构,它通过每个节点中存储下一个节点的地址来实现元素之间的连接。
链表的优点是插入和删除元素时不需要移动其他元素,但访问特定位置的元素需要从头节点开始遍历。
1.3 栈栈是一种特殊的线性结构,它只允许在一端进行插入和删除操作。
栈的特点是先进后出(LIFO),类似于一摞盘子的操作。
常见的应用场景包括表达式求值、递归函数的调用和深度优先搜索。
1.4 队列队列也是一种特殊的线性结构,它允许在一端进行插入操作,在另一端进行删除操作。
队列的特点是先进先出(FIFO),类似于排队等待的操作。
常见的应用场景包括广度优先搜索和任务调度。
1.5 树树是一种非线性结构,它由节点和边组成,每个节点可以拥有多个子节点。
树的特点是分层次、有根无环,并且每个节点最多只有一个父节点。
常见的应用场景包括文件系统、数据库索引和搜索树算法。
1.6 图图是一种非线性结构,它由节点和边组成,每个节点可以与任意其他节点之间建立连接关系。
图的特点是具有很强的表达能力,可以用于解决更加复杂的问题。
常见的应用场景包括社交网络、地图导航和最短路径算法。
二、数据结构的常见操作除了了解各种数据结构的基本概念,还需要掌握它们常见的操作。
西藏自治区考研计算机科学与技术复习资料数据结构重难点解析
西藏自治区考研计算机科学与技术复习资料数据结构重难点解析西藏自治区考研计算机科学与技术复习资料:数据结构重难点解析数据结构是计算机科学与技术领域中的核心基础知识,是考研学习中的重点和难点之一。
本文将针对西藏自治区考研计算机科学与技术专业的学生,解析数据结构的重难点,帮助大家更好地复习和准备考试。
一、线性表1. 顺序表顺序表是数据结构中最基本的一种结构,其内存分配连续且具有随机访问的特点。
复习时需重点掌握顺序表的插入和删除操作、动态扩容的实现原理以及顺序表和链表的比较。
2. 链表链表是另一种常见的线性结构,相比顺序表,链表具有内存分配灵活、插入删除操作高效等优点。
复习时需熟悉单链表、双向链表和循环链表的基本操作,掌握链表的反转和合并等高级操作。
3. 栈和队列栈和队列是两种特殊的线性表结构。
栈是一种后进先出(LIFO)的结构,而队列是一种先进先出(FIFO)的结构。
复习时需熟练掌握栈和队列的基本操作,了解它们在计算机系统中的应用,如函数调用栈和任务调度队列等。
二、树1. 二叉树二叉树是一种重要的非线性结构,它具有递归定义、层次遍历等特点。
复习时需重点掌握二叉树的建立和遍历算法,并了解二叉树的性质和常用操作,如求高度、判断是否为完全二叉树等。
2. 二叉查找树二叉查找树是一种经过排序的二叉树,它具有快速查找和插入等优点。
复习时需了解二叉查找树的定义和性质,熟悉其插入和删除操作,了解平衡二叉树和红黑树等变种。
3. 堆堆是一种特殊的树形结构,它具有非常重要的应用,如堆排序和优先队列等。
复习时需了解堆的定义和性质,熟悉堆的插入和删除操作,掌握堆排序算法的实现和性能分析。
三、图图是一种非线性结构,它由节点和边构成,具有很强的表达能力。
复习时需了解图的基本概念和表示方法,掌握图的遍历算法,了解最短路径和最小生成树等经典问题的解决算法。
四、查找和排序算法查找和排序算法是数据结构中的重要内容,也是考研中的重点。
复习时需熟悉顺序查找、二分查找和哈希查找等常用查找算法,掌握冒泡排序、插入排序、选择排序、快速排序和归并排序等经典排序算法的原理和实现。
数据结构考研知识点总结
数据结构考研知识点总结数据结构是计算机科学中一门重要的课程,其是计算机科学的核心基础之一、在考研中,数据结构也是一个必考的科目,对于应试者来说,掌握数据结构的知识点是非常重要的。
下面是对数据结构考研知识点的总结。
1.数据结构的基本概念和分类。
数据结构是指一组数据的存储方式和相应的操作方法。
常见的数据结构包括线性结构、树形结构、图结构等。
线性结构包括数组、链表、栈、队列等;树形结构包括二叉树、堆、哈希树等;图结构包括有向图、无向图等。
2.线性结构。
线性结构是数据元素之间存在一对一的关系的数据结构。
常用的线性结构有数组、链表、栈和队列。
-数组是一种连续存储的线性结构,可以通过下标直接访问元素。
-链表是一种离散存储的线性结构,有单向链表、双向链表和循环链表等。
-栈是一种特殊的线性结构,只能在一端进行插入和删除操作,遵循后进先出(LIFO)的原则。
-队列也是一种特殊的线性结构,只能在一端进行插入操作,另一端进行删除操作,遵循先进先出(FIFO)的原则。
3.树形结构。
树形结构是一种非线性的数据结构,具有层次关系的集合。
常用的树形结构包括二叉树、AVL树、B树和哈夫曼树等。
-二叉树是一种每个节点最多有两个子节点的树形结构,包括满二叉树、完全二叉树和二叉树等。
-AVL树是一种自平衡的二叉树,通过维护平衡因子来保证树的平衡。
-B树是一种多路平衡查找树,用于大规模数据存储和文件系统等。
-哈夫曼树是一种用于数据压缩的最优二叉树。
4.图结构。
图结构是由顶点和边组成的一种数据结构。
常用的图结构包括有向图、无向图、带权图和图的遍历等。
-有向图是边有方向的图结构,边具有指向关系。
-无向图是边无方向的图结构,边没有指向关系。
-带权图是边具有权值的图结构。
-图的遍历有深度优先(DFS)和广度优先(BFS)两种常见方法。
5.排序算法。
排序算法是数据结构中重要的应用之一、常见的排序算法包括冒泡排序、选择排序、插入排序、归并排序、快速排序和堆排序等。
2010考研数据结构试题点评
2010年考研计算机专业综合考试数据结构试题点评2010年考研计算机专业综合考试是统一命题后的第二次考试。
本次考试统考科目仍然包括四门计算机专业课:数据结构、计算机组成原理、操作系统和计算机网络,这四门课程合在一起称为计算机科学专业基础综合,共150分。
其中数据结构仍然占45分。
总体上来看,2010年的考研数据结构试题仍然注重对基础知识的考察。
重点考察的是对基本知识点、基本概念的理解及应用。
题目的难度适中,没有出现超出考试大纲的题目,也没有一眼就能看出答案的题目;在基础题中又有拔高,本次考试并非考查基本概念的填空,考题比较灵活,重点考察了对基础知识的应用能力、应变能力和实际动手能力。
与2009年的考研数据结构试题相比,难度略有提高,考察的内容更加深入、灵活,并且有针对性。
下面我们对2010的考研计算机专业综合考试进行简要的分析。
一、单项选择题这部分共有40个选择题,每题2分,共80分。
单选题覆盖了大纲列出的各章的知识点,主要考察对各种数据结构、基本查找和排序算法的基本概念和特点的理解以及灵活运用。
1-11题是数据结构部分的试题。
1.若元素a、b、c、d、e、f依次进栈,允许进栈、退栈操作交替进行。
但不允许连续三次进行退栈工作,则不可能得到的出栈序列是()A.dcebfaB.cbdaefC.bcaefdD.afedcb点评:此题考察对栈的基本操作(进栈、退栈)的理解和应用。
栈的特点是后进先出。
若元素a、b、c、d、e、f依次进栈,要得到出栈序列afedcb,需要进行的操作为:a进栈,a 出栈,b,c,d,e,f分别进栈,然后f,e,d,c,b分别依次出栈,连续出栈操作超过3次。
故答案为D。
2.某队列允许在其两端进行入队操作,但仅允许在一端进行出队操作,则不可能得到的顺序是()A.bacdeB.dbaceC.dbcaeD.ecbad点评:此题考察对可以两端入队,一端出队的队列的操作。
一般教材中讨论的队列都是一端入队,一端出队,而本题中的队列可以两端入队,一端出队,入队出队操作要复杂一些,是对教材内容的深化。
2010年南京师范大学数据结构考研真题
1、给出年、月、日,计算该日是该年的第几天。
(本题15分)#include<stdio.h>Int get_days_of_month(int year,int month){if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) return31;else if(month==2)if(year%400==0|| (year%4==0&& year%100!=0))return29;elsereturn28;elsereturn30;}Void main(){int i,year,month,day,sum=0,flag=1;while(flag){printf("please input the date(for example:2005,6,9):");scanf("%d,%d,%d",&year,&month,&day);if(year>0)if(month>=1&& month<=12)if(day>=1&& day<=get_days_of_month(year,month))flag = 0;}for(i=1;i<month;i++){sum +=get_days_of_month(year,i);}sum += day;printf("The date is %d day.\n",sum);}2、有几个学生,每个学生考m门课,要求编一函数,能检查n个学生有无不及格的课程,如果有某一学生有一门或一门以上课程不及格,就输出该学生的学号(学号从0开始)和其全部课程成绩。
(本题15分)#include<stdio.h>#define N 100void main(){Int a[N][N];int i,j,m,n,flag;printf("please input the number of students:");printf("please input the number of courses:");scanf("%d",&m);for(i=0;i<n;i++){printf("please input No.%d scores:",i);for(j=0;j<m;j++)scanf("%d",&a[i][j]);}printf("students who have failed their courses as follows:");for(i=0;i<n;i++){flag = 0;for(j=0;j<m;j++){if(a[i][j]<60){flag=1;break;}}if(flag){printf("No.%d ",i);for(j=0;j<m;j++)printf("%d ",a[i][j]);}printf("\n");}}3、用二分法求方程“(2*X^3)-(4*x^2)+(3*x)-6 = 0”在(-10,10)之间的根。
数据结构10年考研试题及答案(整理)
数据结构考试重点及部分答案自己做的答案不是很正确如果有问题请联系后面的大题不知道原题,所以不知道怎么做见谅!!!题型和分值选择题:15*2=30填空题:10*2=20解答题:5*4=20算法阅读题:5*4=20算法设计题:101 栈的进栈、出栈函数顺序,求一个表达式的顺序eg:进栈顺序是123 计算POP(S)+2 POP(S) =3+2*2=72 给定二叉排序树的数据求平均查找长度Eg:已知长度为9的表{16 ,3 ,7 ,11 ,9 ,26,18,14,15},建立二叉顺序树后进行查找,则等概率的情况下查找成功的平均查找长度为()二叉排序树(Binary Sort Tree)又称二叉查找树。
它或者是一棵空树;或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;根据上述性质,按照给出的表,建立的树如下图:(旁边的数表示查找长度)平均查找长度为:(1+2+2+3+3+4+5+5+6)/9 = 31/93树的概念树是n(n>=0)个结点的有限集4 二重循环的平均时间复杂度的求解(使用嵌套、统计次数)时间复杂度:该算法的运行时间与问题规模的对应关系,时间复杂度用T(n)=O(f(n))来表示Eg:S=0for(i=1;i<=n;i++)for(j=1;j<=m;j++)s=s+1答案为0(n*m)求解算法复杂度时:1、首先确定核心操作。
很显然此算法中,核心的操作是s=s+1;2.这个算法中,存在两重循环。
第一重循环n次,第二重循环m次,总共执行核心操作n*m次。
3.确定此算法的时间复杂度为:O (n*m)若复杂度为 O (n*n),则算法可以是如下的样子:S=0for(i=1;i<=n;i++)for(j=1;j<=n;j++)s=s+15 单链表中R是P的前驱,在P Q之间插入S,则则如何插入(语句表示)在相邻元素R、P之间插入一个值为X的数据元素的基本操作步骤:(1)生成一个数据域值为X的结点S(2)使X结点的指针域指向结点P:S->next=P->next(3)修改R结点的指针域指向结点X:P->next=S6 已知顺序表,求查找X的平均查找长度(n+1)/27栈的插入和删除的位置栈顶8 已知入队序列求出队序列原则:先进先出9 在图中,所有度数和等于边的几倍两倍10 邻接矩阵中行和列分别表示什么意思无向图邻接矩阵的第i行(或第i列)非零元素的个数正好是第i个顶点的度。
数据结构分析报告(5篇)
数据结构分析报告(5篇)第一篇:数据结构分析报告银行自动取款系统一、目的根据所学知识,编写指定题目的C语言程序,并规范地完成课程设计报告。
通过课程设计,加深对《C语言程序设计》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用(时间函数、绘图函数以及文件的读写操作函数等);复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。
二需求分析根据任务书里的“课程设计的基本要求”及给定的“课程设计的主要内容”。
编写的银行自动提款模拟系统由使用者担当银行卡使用者自行输入卡号模拟银行卡使用系统进行各项操作,该系统有简便、稳定等特点。
该系统开始时有使用者自行初始化各项数据,包括卡的数量,一天内可操作次数上相及“银行卡”的卡号和余额,使用者可根据不同情况对系统的各项内容进行初始化,方便、快捷。
当使用者输入错误数据及操作次数达到上限时系统会自动退出或者给出相应的恢复提示使用者重新操作,直到输入正确,系统不会出现异常、突然崩溃,稳定。
1、所实现的功能:①.系统能够让使用者自行输入卡的数量及每天操作次数上限,然后初始化卡的卡号和卡上所拥有的余额;②.初始化信息后,可以开始使用系统进行存取款,输入卡号,如果卡号为负责退出程序、卡号不存在则提示重新输入直到输入正确为止,如果此卡的操作次数已达上限则同样退出程序;③.输入正确后可以输入想要存取款数目,当数目为正是存款,负数为取款;④.正确存取款后,系统会自行输出操作、卡上余额和剩下操作次数到屏幕,然后返回选择菜单,使用者可以再进行选择进行操作。
2、测试预测①.进行测试,每个编写的函数逐个进行调试直到都能够正常运行;②.在进行存取款操作都,所对应卡的操作次数应加一,余额能够进行相应的改变;③.程序的各项运作结果与预想的与一样。
2010年硕士研究生入学考试“数据结构与C语言程序设计”试题与答案
13.C 语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是 A.单向值传递 B.地址传递 C.由实参传给形参,再由形参传回给实参 D.由用户指定传递方式 14.C 语言规定,函数返回值的类型是由 A.return 语句中的表达式的类型所决定 B.调用该函数时的主函数的类型所决定 。
3
C.调用该函数时系统临时决定 D.在定义该函数时所指定的函数的类型所决定 15.下面给出的 4 个定义语句中,与 int *p[5]; 等价的是 。 A.int p[5]; B.int *p; C.int *(p[5]); 16.若有以下定义和语句,则值为 1002 的表达式是 。 struct s{ int age; int num; }; static struct s a[3]={1001,20,1002,19,1003,21},*ptr; ptr=a; A.ptr++->num B.(ptr++)->age C.(*ptr).num D.(*++ptr).age 17.若要通过下面的程序段使得指针变量指向一个存储整型变量的动态存储单元,则程序段中的空 。 白处(横线上方)应该是 int *ptr; ptr= malloc(sizeof(int)); A.int B.int * C.(int *) D.(*int ) 。 18.下面关于宏的叙述中,错误的是 A.宏名无类型,其参数也无类型 B.宏定义不是 C 语句,不必在行的末尾加分号 C.宏替换只是字符替换 D.宏定义命令必须写在文件的开头 。 19.下列关于 C 语言文件操作的叙述中,正确的是 A.对文件的操作必须是先打开文件 B.对文件的操作必须是先关闭文件 C.对文件操作之前必须先测试文件是否已打开,然后再打开文件 D.对文件的操作无顺序要求 20.使用 fopen( )函数以文本方式打开或者建立可读写文件。要求:若指定文件不存在,则建立一 个文件,并使文件指针指向其开头;若指定文件存在,则打开该文件,并将文件指针指向其结尾。下列 。 “文件使用方式”中,正确的是 A.“r+” B.“ a+” C.“ w+” D.“a”
2010年计算机考研真题大题参考答案
块的大小为 64B,块内地址为 6 位,主存容量为 256MB,按字节编址,256MB = 228 B,主
存地址为 28 位,快标记为 19 位,采用直接映射方式,主存和 Cache 的地址格式分别为:
44.(12 分)某计算机的主存地址空间大小为 256MB,按字节编址,指令 Cache 和数据 Cache 分离,均有 8 个 Cache 行,每个 Cache 行大小为 64B,数据 Cache 采用直接映射方式,现有 两个功能相同的程序 A 和 B,其伪代码如下所示:
程序 A: int a[256][256]; …… int sum_array1() {
(2)数组元素 a[0][31]和 a[1][1]各自所在的主存块对应的 Cache 行号分别是多少(Cache 行号从 0 开始)?
(3)程序 A 和程序 B 的数据访问命中率各是多少?哪个程序的执行过程更短?
【 解 答 】(1)数据 Cache 有 8 个 Cache 行,每个 Cache 行大小为 64B,若不考虑用于 Cache 一致性维护和替换算法的控制位,则数据 Cache 的总容量为 8×64B = 512B。
( X 0 X1 …… X n-1 )变化为( X p X p+1 …… X n-1 X 0 X1 …… X p−1 )。 要 求 :
(1)给出算法的基本设计思想; (2)根据设计的算法,采用 C 或 C++或 JAVA 语言描述算法,关键之处给出注释; (3)说明你所设计的算法的时间复杂度和空间复杂度。
页号 0 1 2 3
页框号 7 4 2 9
2010年计算机专业考研解析
海文详解10计算机考研大纲:数据结构2010年计算机考研统考大纲完全解析系列共由五篇构成,在第一篇中,我们在第一时间着重对整个考试的性质,考查目标,新大纲的变化以及相应的备考策略做了介绍。
在接下来的四篇中,我们将分别详细解读大纲所规定的四门课程的考查内容,并给出有针对性的复习提示。
今天我们首先来解析一下计算统考大纲数据结构部分及其相关知识点。
数据结构占了45分,和计算机组成原理部分同一个比重,在以往各年计算机专业的研究生入学考试中,几乎没有学校不考查数据结构的内容,而且绝大部分考试中,数据结构这一门都占据了重要的地位,这足以体现计算机专业研究生选拔对数据结构课程的要求之重。
2010年的统考大纲对数据结构的考查目标定位为理解数据结构的基本概念,掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现;在掌握基本的数据处理原理和方法的基础上,能够对算法进行基本的时间复杂度和空间复杂度的分析;能够选择合适的数据结构和方法进行问题求解,具备采用C或C++或JAVA语言设计程序与实现算法的能力。
这个考查目标与09年大纲的考查目标相比,最大的变化出现在“具备采用C或C++或JAVA语言设计程序与实现算法的能力”。
事实上,这一方面可以认为是针对去年考试中出现的一道与程序设计相关的考题的修正,另一方面,也可以看出研究生入学考试对知识实际应用能力的强调。
当然,考生也不必因此而专门复习一遍C或C++程序设计,毕竟复习时间有限,而且数据结构要求的重点在于算法设计的能力,而不是编写代码的能力,因此,只要能用类似伪代码的形式把思路表达清楚就行,不用强求写出一个没有任何语法错误的程序。
下面我们来解析一下知识点。
线性表这一章里面的知识点不多,但要做到深刻理解,能够应用相关知识点解决实际问题。
链表上插入、删除节点时的指针操作是选择题的一个常考点,诸如双向链表等一些相对复杂的链表上的操作也是可以出现在综合应用题当中的。
栈、队列和数组可以考查的知识点相比链表来说要多一些。
2010年硕士研究生入学考试数据结构与C语言程序设计(993)试题与答案
2.对于采用链式存储结构的队列,在进行删除操作时 。
A.只需修改队头指针
B.只需修改队尾指针
C.队头指针和队尾指针都需要修改
D.队头指针和队尾指针都可能需要修改
3.将中缀表达式转换为等价的后缀表达式的过程中要利用堆栈保存运算符。对于中缀表达式
A-(B+C/D)×E,当扫描读到操作数 E 时,堆栈中保存的运算符依次是 。
2010 年硕士研究生入学考试
数据结构与 C 语言程序设计(993) 试题与答案
一、单项选择题(本题共 20 分,每小题各 2 分)
1.已知双向循环链表的结点构造为 llink data rlink ,在链表中由指针 q 所指结点的后 面插入指针为 p 的结点的过程是依次执行 。
A.p->llink=q; p->rlink=q->rlink; q->rlink=p; q->llink=p; B.p->llink=q; p->rlink=q->rlink; q->rlink=p; q->rlink->llink=p; C.p->llink=q; p->rlink=q->rlink; q->rlink=p; p->rlink->llink=p; D.p->llink=q; p->rlink=q->rlink; q->rlink=p; p->llink->llink=p;
i=f(2); j=f(1+1); printf(“%d %d\n”,i,j); }
4.下列程序的运行结果是 。 #include <stdio.h> void main( ) { FILE *fp;
数据结构--2010河北工大考研题及答案
2010年一、1. 所谓的双向链表,是指在每一个结点中,有两个指针域,其中一个指向该结点的直接后继结点,而另一个则指向。
【答案】其直接前趋结点2. 线性表的顺序存储结构是一种存取的存储结构。
【答案】随机3. 若一棵根树的每个结点最多只有孩子,且孩子又有之分,次序不能颠倒,则称此根树为。
【答案】两个,左、右,二叉树4. 满二叉树是指高度为k,且有个结点的二叉树。
二叉树的每一层上,最多有个结点。
【答案】2k-1 2i-15. 在各种查找方法中,平均查找长度与结点个数n无关的查找方法是。
【答案】哈希表查找法6. 广义表(a,(a,b),d,e,((i,j),k))的长度是,深度是。
【答案】5,3二、1.下面哪一种情况不利于发挥堆排序的优势。
【答案】待排序的数据量小2.如果采用直接选择排序法来排序一个长度为5,且已按相反顺序排序的数组,共需的比较次数是。
【答案】103. 在一棵包含n个结点的顺序二叉树上,最远的两个结点有多远。
【答案】在一棵树包含N个节点完全二叉树上,相距最远的两节点的距离是2logN-34. 折半查找不成功时,指针Low和High的关系是。
【答案】Low>High5.在待排元素序列基本有序的前提下,下面给出的几种排序方法效率最高的是。
【答案】直接插入排序6.设A是一个包含有10个数据元素的有序数组,如果我们利用折半查找法在A中查找任意的数据元素X,假定在确定目标元素是否等于、小于或大于A[i]时仅需比较一次。
则平均的查找成功时间是。
【答案】2.9三、1.能在线性表上进行的操作,就一定能在栈上进行。
【答案】错2. 如果关键字是主关键字的话,则对一个无序的数据元素序列经按主关键字排序后得到的结果是唯一的。
【答案】对3.由于线性链表的存取必须顺序进行,所以在线性链表上删除一个结点时,必须移动其后的所有结点,才能继续保持一个顺序存取的关系。
【答案】错4. 线性表顺序存储结构的存储密度大于线性表的链式存储结构。
暨南大学_830数据结构2010--2017_考研真题/硕士研究生入学考试试题
C.广度优先遍历算法D.深度优先遍算法
19.通过一趟排序就能从整个记录序列中选择出具有最大(或最小)关键字的记录,这种排序方法是( )。
A.堆排序B.快速排序C.直接插入排序D.归并排序
20.设单链表中指针p指着结点A,若要删除A之后的结点(若存在),则需要修改指针的操作为( )。
13.在一个有向图的邻接表或逆邻接表中,如果某个顶点的链表为空,则该顶点的度一定为零。()
14.在n个顶点的无向图中,若边数>n-1,则该图必是连通图。()
15.一颗满二叉树同时又是一颗平衡树。()
四.应用题(35分)
A. p->next=p->next->next B. p=p->next
C. p=p->next->next D. p->next=p
二.填空题(每空2分,共30分)
1.在堆排序,希尔排序,快速排序,归并排序算法中,占用辅助空间最多的是。
2.在散列表(hash)查找中,评判一个散列函数优劣的两个主要条件是:
A.单链表B.双链表C.单循环链表D.顺序表
6.线性表的链接实现有利于( )运算
A.插入B.读表元素C .查找D.定位
7.设连通图G的顶点数为n,则G的生成树的边数为( )
A. n B. n-1 C.2n D. 2n-1
8.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动()个元素。
A.n-i B.n-i+1 C.n-i-1 D. i
9.若有一个栈的输入序列是1,2,3,…,n,输出序列的第一个元素是n,则第i个输出元素是()
A.n-i B.n-i-1 C.n-i+1 D.不确定
考研_2010年山西太原科技大学数据结构考研真题
2021年山西太原科技大学数据构造考研真题一. 名词解释〔每题3分,共30分〕1.数据元素3. 定长记录文件6. 拓扑排序8. 散列10.赫夫曼〔Huffman〕树二.选择题。
〔每题3分,共30分〕1.求字符串T在字符串S中首次出现的位置的操作称为〔〕A. 串的模式匹配2.如果只想得到1024个元素序列中第5个最小元素之前的局部排序的序列,用〔〕方法最快。
C. 简单项选择择排序3.设无向图的顶点个数为n,那么该图最多有〔〕条边。
A. n-1B.n(n-1)/2C. n(n+1)/2D.n(n+1)4.具有128个结点的完全二叉树的高度为〔〕。
A.65.线性链表不具有的特点是〔〕。
D. 随机访问6.设F是一个森林,B是由F转换得到的二叉树,F中有n个非叶子结点,那么B中右指针域为空的结点有〔〕个。
C. n+1D.n+27.对稀疏矩阵进展压缩存储目的是〔〕。
行矩阵运算8.线性表〔al,a2,…,an〕以链接方式存储时,访问第i位置元素的时间复杂度为〔〕9.输入序列为ABC,可以变为CBA时,经过的栈操作为〔〕10.在有向图中每个顶点的度等于该顶点的〔〕C.入度与出度之和三.综合题〔每题15分,共60分〕1.写出以下图二叉树的先序遍历序列和中序遍历序列,如果该图是由森林转换过来,试画出该森林。
2.以下图为一个带权的无向网,针对该图答复以下问题∶〔1〕写出从顶点a开场访问的深度优先遍历序列和广度优先遍历序列。
〔2〕画出由克鲁斯卡尔算法生成的最小生成树。
3.将关键字53,78,65,17,83,9,74,45,23,插入到一棵初始为空的二叉排序树中,画出由这些关键字组成的二叉排序树,并计算在该二叉排序树查找时的平均查找长度〔只考虑查找成功的情况〕。
4.在堆排序、快速排序和归并排序中∶〔1〕.假设只从存储空间考虑,那么应首先选取哪种排序方法,其次选取哪种排序方法,最后选取哪种排序方法?〔2〕.假设只从排序结果的稳定性考虑,那么应选取哪种排序方法?〔3〕.假设只从平均情况下排序最快考虑,那么应选取哪种排序方法?〔4〕.假设只从最坏情况下排序最快并且要节省内存考虑,那么应选取哪种排序方法?四.算法设计题〔每题 15分,共30分〕1.设L为带头结点的单链表,表中元素无序,试编写算法,删除表中值一样的多余元素。
2010年考研北京航空航天大学计算机学科专业基础综合(408)重难点解析
2010年考研北京航空航天大学计算机学科专业基础综合(408)重难点解析跨考专业课特别奉献,为广大考研学子加油助力!1、操作系统今天我们来解析一下计算统考大纲操作系统部分的知识点。
操作系统的研发能力很能够体现计算机软件发展的水平,因此操作系统是计算机课程体系里很重要的一门专业核心基础原理课程。
在考研大纲里,操作系统占了35分,次于数据结构和组成原理,但高于计算机网络。
总的来说,操作系统实际上是四门考察课程里最简单的。
除了PV操作这一大难点,基本没有其它特别难的原理或复杂的算法。
重要的是区分清楚各个不同的算法,不要混淆。
复习参考书推荐国内操作系统最经典的教材,西电汤子瀛版的《操作系统》。
很多高校都在使用这本书做操作系统课程的教材或者课内参考书,计算机考研统考大纲也和这本书的目录比较一致,建议大家复习时采用。
操作系统在大纲中的考查目标是了解操作系统在计算机系统中的作用、地位、发展和特点;理解操作系统的基本概念、原理,掌握操作系统设计方法与实现技术; 能够运用所学的操作系统原理、方法与技术分析问题和解决问题。
这些和09年大纲相比都没有发生变化。
事实上,大纲操作系统部分列出要考查的知识点的变化也 很小,只是做了一些微小的调整。
操作系统概述这一章出现大题的可能性微乎其微。
选择 题中常出现的点主要是这些:操作系统的定义,引入单道批处理系统、多道批处理、分时系统、实时系统的原因,这些不同阶段的操作系统共的特征如何,相互之间 的差别在什么地方;操作系统的基本特征和功能;操作系统的运行环境。
进程管理是重点和难点之所在。
考点既可以出现在选择题中,又可以 出在综合应用题中。
按照大纲考点的顺序,诸如进程的概念、基本特征、组成结构,进程与程序的区别与联系,进程的状态及其相互转换的条件及过程,进程间的通 信方式,线程的定义以及和进程的区别与联系,调度的基本概念、时机、切换过程和各种调度算法,进程同步相关的概念,实现同步与互斥的机制,信号量和PV操 作,管程的基本组成结构和运行过程,死锁的基本概念,死锁产生的四个必要条件,预防、避免、检测和解除死锁的原理与方法,这些点都可以出现在选择题中进行 考查。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
清航考研
清航考研
清航考研 7. 若无向图 G =(V. E)中含 7 个顶点,则保证图G 在任何情况下都是连通的,则需要的边数最少是 ( ) A、6 B、15 C、16 D、21
解答:A。 清航考研 试题分析:对于一个有 n 个顶点的无向连通图, 要保证其连通性,只需 n-1 条边连通 n 个顶点就 够了。所以本题选 A。 若想保持双重连通性,有 n 个顶点的无向连通图 至少需 n 条边。若想保持最多的重连通性,需保 持n(n-1)/2 条边,那样就把问题复杂化了。
�
2010年考试改卷的基本情况
�
2010 年考试改卷的大概情况如下: � 客观题是机改,数据结构部分总分22 分,平 均得分约为17分,失分较多的是 �第2题(双端队列) 清航考研 �第5题( K叉树叶结点的计算) �第8题(拓扑排序的序列个数)
�第10题(快速排序递归次数);
�
主观题是人改,数据结构部分总分23分 � 第41 题10 分,平均得分5 分,失分最多的是 清航考研
清航考研
2
清航考研
�
清航考研
从报考学校来看 � 报考邮电大学、北京工业大学的考生最多。 � 中科院研究生院和北航的考生考试分数最 高,北京工大的考生分数最低。 � 计算平均查找长度(2 分),平均得1 分。 许多考生成绩差的主要原因: � 本科数据结构课程学习不够扎实。 � 考前复习不够充分,押题不中。 � 考试时审题不仔细,急于给出答案,未严格 推导。 清航考研
计算机科学与技术学科全国硕士研究生统一入学 考试已经进行了两次。 数据结构部分的考试范围要求掌握:
�
清航考研 一、基本数据结构的知识 二、算法设计和编程的能力
三、综合应用算法和数据结构的技能
�
2.栈与队列的 7.无向连通 2.双端队列的 操作 图的定义清航考研 出队序列
1
清航考研
清航考研
清航考研
考研大纲中数据结构部分的要求
�
考试范围比较
2009 年 1.队列与缓冲 6.森林的二 区 叉树表示 2010 年 1.进栈与出栈 序列 6.Huffman树 的定义和特点 7.无向连通图 的最少边数 8.拓扑排序序 列 9.折半查找的 性能分析 10.快速排序 递归次数
清航考研
辅导的主要内容
数据结构 年考研分析 2010 2010年考研分析
清华大学计算机系 殷人昆
� � � �
考研大纲中数据结构部分的要求 2009 年考试改卷的基本情况 2009 年考试试卷分析 清航考研 今后考试走向与应试指导
解答:C。 试题分析:插入关键字48 后,平衡二叉树的调整 过程如下:
清航考研
清航考研
4
清航考研
试题分析:设度为i的结点有 ni 个,根据题意有, n4 = 20,n3 = 10,n2 = 1,n1 = 10。则根据公式 ⎛ m ⎞ n0= ⎜ ⎜ ∑ (i − 1)n i ⎟ ⎟ +1 i = 2 ⎝ ⎠ *1+2 *10+3 *20+1 = 82。因此选 叶结点个数n0 = 1 1* 1+2* 10+3* 清航考研 项B是正确的。 6. 对n (n≥ 2) 个权值均不相同的字符构成哈夫曼树, 关于该树的叙述中,错误的是( ) A、该树一定是一棵完全二叉树 B、树中一定没有度为1的结点
清航考研
24 13 37 48 53 90 13 RL旋转 24 48 37 53 90
在新平衡二叉树中,关键字37所在结点的左、右 24,53。 子结点中保存的关键字分别是 清航考研 5. 在一棵度数为 4 的树T中,若有20个度为4的结 点,10个度为3的结点,1个度为2的结点,10个度 为1的结点,则树T的叶结点个数是( ) A、41 B、82 C、113 D、122 解答:B。
如果限制连续出栈不能超过3次,选项D出现连续 出栈5次情形,因此选项D应是不可能出现的出栈 序列。 清航考研
3
�
清航考研 若设end1(a)表示 a从end1端进,end2(a)表示a从end2 端进。 end2(a), end2(b), end1(c), end1(d), end1(e)� � �edcab,出队序列正好是选项a(bacde) � end2(a), end2(b), end1(c), end2(d), end1(e)� 清航考研 �ecabd,出队序列正好是选项B(dbace) end2(a), end2(b), end2(c), end1(d), end2(e)� � �dabce ,出队序列正好是选项D(ecbad) � 对于选项C(dbcae) ,d, b, c要在a前出,都应 end2端进,但 b不可能在c前出,故选项C是不 可能的出队序列。 清航考研
清航考研
8. 对下图进行拓扑排序,可以得到不同的拓扑序列 的个数是( ) A 、4 B、3 C、2 D、1
a b
e
清航考研 c
d
解答:B。 试题分析:a 输出后图中剩下两条路,组合起来 有3 个拓扑有序序列: a-b-c-e-d,a-e-b-cd,a-b-e-c-d。 清航考研
清航考研
1
清航考研
�
清航考研
�
2010 年选择题还有一道题(11题)是几种排序方 法的考察。 在选择题部分,各主要知识点分布如下: 2009 年 2010 年 2 4 2
综合应用题部分的试题范围如下: 2009 年 41. 求解图的最短路径 2010 年 41.散列表构造、数据存 储及性能分析
2010年考试试卷分析
小题2分) 一、单项选择题(每 一、单项选择题(每小题 1. 若元素a、b、c、d、e、f依次进栈,允许进栈、 退栈操作交替进行,但不允许连续三次进行退栈 工作,则不可能得到的出栈序列是( )。 清航考研 A、d c e b f a B、c b d a e f C、b c a e f d D 、a f e d c b 解答:D。 试题分析:设用S表示进栈,X 表示出栈,在不 允许连续三次退栈的情形下各选项出栈序列为 清航考研
清航考研
3. 下列线索二叉树中(用虚线表示线索),符合后 序线索树定义的是( ) A. B. a a
b d c
NULL NULL
b
c
NULL
清航考研
b
d
C.
b d
a c
a D.
c d
NULL NULL
解答: C。
清航考研
3.几种二叉树 8.m阶 B 树的 3.后序线索二 遍历的方式 定义 叉树的表示
4.完全二叉树 9.堆的定义 的性质 和插入方法 5.平衡二叉树 10.几种排序 的定义 方法 4.平衡二叉树 的插入 5.K叉树叶结 点的计算
从考试的命题来看,2010 年比2009年的题目难度 要大一些。 清航考研
清航考研 4. 在下列所示的平衡二叉树中插入关键字 48后得到 一棵新平衡二叉树,在新平衡二叉树中,关键字 37所在结点的左、右子结点中保存的关键字分别 是( ) A、13,48 B、24,48 C、24,53 D、24,90 清航考研
13 24 53 37 90
�
清航考研 栈、队列与双端队列 2 树与二叉树、森林 4
图 查找 排序 1 1 2 清航考研
清航考研 42. 算法设计:在单链表 42.算法设计:将一维数 中求倒数第k个结点位置 组中所有元素循环左移 p位
清航考研
�
清航考研
a、dcebfa SaSbScSdXd SaSbScXc SaSbSeXe SaSbXb SaSfXf SaXa
�
清航考研 2. 某队列允许在其两端进行入队操作,但仅允许 在一端进行出队操作,则不可能得到的顺序是 ( ) A、b a c d e B、d b a c e C、d b c a e D、e c b a d 清航考研 解答: 试题分析:这是个双端队列的试题。 设队列两端分别为end1和end2,且在end1只进不 出,在end2可进可出。则从end1 进end2出相当于 队列,在end1进end1出相当于栈。 清航考研
�
1 2
2009 年的试题较简单,2010年的试题比较复杂, 且难度稍大,但平时教学中应当都教过,或练习 都做过。 清航考研
清航考研
清航考研 第41题10分,平均得分4分,失分最多的是 �计算散列表长度(2分),多数考生未得 分。 �将给定元素存储到散列表中(6分),平 均得3分。如果第1问错了,不影响第2问 清航考研 得分;但可惜散列函数有不少同学选择不 完全对。 �计算平均查找长度(2分),平均得1分。 � 第42 题是算法设计题13分,平均得6 ~8分, 失分最多的是算法效率达不到要求。
清航考研
5
清航考研 9. 已知一个长度为16的顺序表L,其元素按关键字 有序排列,若采用折半查找法查找一个不存在的 元素,则比较次数最多的是() A、4 B、5 C、6 D、7
解答:B。 清航考研 试题分析:使用折半查找的查找不成功的关键字 比较次数最多不超过对应判定树的高度。描述长 度为16的有序顺序表上折半查找性能的判定树的 高度为h = ⎣log216⎦ +1 = 5 ,因此 采用折半查找 法查找一个不存在的元素,比较次数最值最小的结点一定是兄弟结点 D、树中任一非叶结点的权值一定不小于下一层任 一结点的权值 解答:A。 试题分析:哈夫曼树是只有度为 2 和度为 0 的结 清航考研 点,没有度为 1 的结点的二叉树,但不一定是完 全二叉树,所以,选项a是错误的。 哈夫曼树中两个权值最小的结点是兄弟结点,因 为哈夫曼算法要求最先选择的是权值最小的两个 结点。树中任一非叶结点的权值一定不小于其下 层任一结点的权值。因此其他选项都是正确的。
B、cbdaef SaSbScXc SaSbXb SaSdXd SaXa S fX f