2014年南邮考研数据结构复试真题

2014年南邮考研数据结构复试真题

整理:陈杨来自2015南邮考研群:371506641 2014年南京邮电大学数据结构复试真题(回忆版)

1.说明二叉树、树的概念及相互关系(10’)

2.给出一个邻接表,将其转化为邻接矩阵(2’);写出其深度优先、宽度优先遍历序列(4’)和生成树(4’);写出将邻接表转化为邻接矩阵的算法(10’)

3.画出有13个结点的二叉判定树,写出其搜索成功和失败的平均长度;(10’)

4.什么是顺序队列中的假溢出?如何解决(10’)

5.a,b,c,d,e是互不相同的元素,能否比较7次就将它们排好序?若可以,给出比较过程,若不可说明原因(10’)

6.写出邻接表中,计算顶点为num的度的算法(10’)

7.设二叉树中度为0的个数为n0,度为2的个数为n2给出它们之间的关系,并证明。(10’)

8.什么是内搜索和外搜索,分别适用什么场合和数据结构(10’)

9.一个带表头结点的单链表A,将链表A拆分为A、B两个表,A中放原链表中奇数项,B中放原链表中偶数项。编写程序,使其顺序不变。(10’)

特别感谢素材提供:蒋孝雯学姐,张磊学长。

南邮数据结构上机实验二二叉树的基本操作及哈夫曼编码译码系统的实现

实验报告 (2015 / 2016学年第二学期) 课程名称数据结构A 实验名称二叉树的基本操作及哈夫曼编码译码系统的实现 实验时间2016 年 4 月14 日 指导单位计算机科学与技术系 指导教师骆健 学生姓名班级学号 学院(系) 管理学院专业信息管理与信息系统

实习题名:二叉树的基本操作 班级姓名学号日期2016.04.14 一、问题描述 设计递归算法,实现下列二叉树运算:删除一棵二叉树、求一棵二叉树的高度、求一棵二叉树中叶子结点数、复制一棵二叉树、交换一棵二叉树的左右子树。设计算法,按自上到下,从左到右的顺序,按层次遍历一棵二叉树。设计main函数,测试上述每个运算。 二、概要设计 文件tree.cpp中在该文件中定义二叉树的链式存储结构,用队列实现二叉树的层次遍历,并且编写实现二叉树的各种基本操作函数。其中包括结点类BTNode,循环队列类SeqQueue,二叉树类BinaryTree。主函数main的代码如图所示。 三、详细设计 1.类和类的层次设计 程序定义了循环队列SeqQueue类和二叉树BinaryTree类。SeqQueue类主要是用队列实现,层次遍历。运用后序遍历思想,把树分解为左右子树和跟结点再进行左右交换并计算树的高度,最后删除二叉树。

(a )循环队列类 (b )二叉树类 2. 核心算法 程序利用循环队列SeqQueue 类通过不断出队并输出节点的值,将左右孩子入队直到队列为空实现二叉树的层次遍历。并运用后序遍历思想,将二叉树树分解为左右子树和根结点,利用(p -> lChild)和(p -> rChild)计算结点数目,并通过交换结点的左右子树实现左右交换,计算树的高度,最后删除二叉树。核心算法主要是二叉树BinaryTree 类中的High ,Node_num ,Exchange ,Level_traversal 四个函数,其设计流程图如下: SeqQueue -int front, rear; -int maxSize; -BTNode **q; +SeqQueue(int mSize); +~SeqQueue(){delete []q;} +bool IsEmpty() const{return front == rear;} +bool IsFull() const{return (rear + 1) % maxSize == front;} +bool Front(BTNode *&x)const; +bool EnQueue(BTNode *x); +bool DeQueue(); +void Clear(){front = rear = 0;} BinaryTree +BinaryTree():s(100){root = NULL;} +~BinaryTree(){delete []root;} +bool Clear(); +void MakeTree(constT&x,BinaryTree&left,BinaryTree& right); +int High(BTNode*p); +int Node_num(BTNode*p); +BTNode*Copy (BTNode*t); +void Exchange(BTNode *&t); +void Level_traversal(void(*Visit)(T&x)); #SeqQueue s; -void Clear(BTNode* &t); -void Level_traversal(void(*Visit)(T&x),BTNode*t); T T

南邮考研2010通原真题

南京邮电大学 2010年攻读硕士学位研究生入学考试 通信系统原理试题 01-05:DDCBD 06-10:BDDDB 注意事项:所有答案写在答题纸上,并标明每题的题号,计算题要求解题步骤完整,保持卷面整洁。 一、选择题(每题2分,共60分) 1、纠错码的应用可以改善通信系统的误码性能,但是付出的代价是___D___。 A)误码率B)信噪比C)效率D)带宽 2、滚降滤波器信道的应用,是牺牲带宽,换取接收机___D_____。 A)频带利用率B)抗干扰性C)抗噪声性D)抗定时抖动能力3、PCM信号的带宽是相应模拟信号带宽的__C____倍。 A)0.5 B)2 C)20D)0.1 4、单音100%调制AM信号的制度增益约是___B___,SSB的制度增益是______。 A)2,2 B)2/3,1 C)1/3,2 D)1/9,1 ?5、下列不含离散谱只含连续谱的信号是__D__。 A)DPSK,AM B)PSK,FSK C)MSK,PSK D)DSB,PSK 6、要传100kB的基带信号,无码间干扰100%滚降信道的带宽为__B____,这时频带利用率为______。 A)100kHz,2B/Hz B)100kHz,1B/Hz C)150kHz,2B/Hz D)140kHz,2B/Hz 7、偶监督码的最小汉明距离为__D____,则最多可纠正______位错。 A)6,2 B)5,4 C)4,2 D)2,0 8、PCM3032系统帧长为__D____微秒,含码元个数为______位。 A)64,128 B)64,64 C)256,125 D)125,256 9、样值为-139个标准单位,则A律13折统量化编码的极性码为__D____,段落码为______。A)0,110 B)1,100 C)1,101 D)0,100 10、准同步数字序列一次群帧结构含有___B___个非话路时障,故非话音比特的速率为______kbits/s。 A)30,2 B)2,128 C)2,64 D)32,2 11-15:ADBAB 16-20:BDCAB 11、电缆信道中继属于_A_____信道,短波电离层信道属于______信道。 A)恒参,随参B)恒参,时不变C)恒参,恒参D)恒参,定参 ?12、采用多进制信号传输二进制序列可以节省__D____,付出的代价是______。 A)功率,带宽B)时间,复杂度C)带宽,信噪比D)时间,信噪比

2015年南京邮电大学数据结构初试真题

2015年南京邮电大学数据结构考研初试题目 判断题(共15题*2分) 1.消除递归不一定需要使用栈,此说法() 2.稀疏矩阵压缩存储后,必会失去随机存取功能() 3.完全二叉树中,若一个结点没有左孩子,则它必是叶结点() 4.连通分量是无向图的极大强连通子图() 5.在9阶B-树中,除叶子以外的任意结点的分支数介于5和9之间() 6.在平衡二叉树中,向某个平衡因子不为零的结点的树中插入一新结点,必引起平衡旋转() 7.10个叶子结点的哈弗曼树,其高度最小为58.队列和栈不可以使用散列存储() 选择题(共15题*2分) 1.以下属于逻辑结构的是()。 A.顺序表B.哈希表 C.有序表 D.单链表 2.下列数据中,()是非线性数据结构。 A.栈B.队列C.完全二叉树D.堆 3.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()储方式最节省运算时间。 A.单链表B.仅有头指针的单循环链表C.双链表D.仅有尾指针的单循环链表 4.循环队列存储在数组A[0..m]中,则入队时的操作为()。 A.rear=rear+1 B.rear=(rear+1)mod(m-1)

C.rear=(rear+1)mod m D.rear=(rear+1)mod(m+1) 5.二叉树在线索后,仍不能有效求解的问题是()。 A.先序线索二叉树中求先序后继B.中序线索二叉树中求中序后继C.中序线索二叉树中求中序前驱D.后序线索二叉树中求后序后继6.下面几个符号串编码集合中,不是前缀编码的是()。 A.{0,10,110,1111}B.{11,10,001,101,0001} C.{00,010,0110,1000} D.{b,c,aa,ac,aba,abb,abc} 7.用有向无环图描述表达式(A+B)*((A+B)/A),至少需要顶点的数目为()。 A.5B.6C.8D.9 8.下列关于AOE网的叙述中,不正确的是()。 A.关键活动不按期完成就会影响整个工程的完成时间 B.任何一个关键活动提前完成,那么整个工程将会提前完成 C.所有的关键活动提前完成,那么整个工程将会提前完成 D.某些关键活动提前完成,那么整个工程将会提前完成 9.m阶B-树是一棵() A.m叉排序树 B.m叉平衡排序树 C.m-1叉平衡排序树 D.m+1叉平衡排序树 10.关于杂凑查找说法不正确的有几个()【南京理工大学2000一、16(1.5分)】 A.采用链地址法解决冲突时,查找一个元素的时间是相同的

2014(1)数据结构-A-试题

南阳理工学院2013-2014学年第2学期试卷(A卷) 课程:《数据结构》课程号:1504108130 考核方式:(闭卷)课程性质:专业必修课适用对象:12级软件工程专业 题号一二三四五总分复核人 满分20 20 10 30 20 100 得分 评卷人得分 一、选择题:(每题2 分,共20 分) 1.设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06, 07,08,09},R={<01,02>,<01,03>,<01,04>,<02,05>,<02,06>,<03, 07>,<03,08>,<03,09>},则数据结构A是()。 A.线性结构 B.树型结构 C.物理结构 D.图型结构 2.栈和队列的共同特点是()。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 3.在头指针为head的循环链表中,判断指针变量P指向尾结点的条件是()。 A.p->next->next==head B.p->next==head C.p->next->next==NULL D.p->next==NULL 4.在单链表中,要将s所指结点插入到p所指结点之后,其语句应为()。 A.s->next=p+1; p->next=s; B.(*p).next=s; (*s).next=(*p).next; C.s->next=p->next; p->next=s->next; D.s->next=p->next; p->next=s; 5.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾 元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为 ()。 A.r-f B.(n+f-r)%n C.n+r-f D.(n+r-f)%n 6.设有数组A[0..7][0..9],数组的每个元素长度为2字节,数组从内存首地址 1000开始顺序存放,当用以行为主存放时,元素A[5][8]的存储首地址为()。 A.1116 B.1094 C.1138 D.1120 7.若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上 所有元素)依次存放于一维数组B[1..n(n+1)/2]中,则在B中确定a ij(i

数据结构实验报告全集

数据结构实验报告全集 实验一线性表基本操作和简单程序 1.实验目的 (1)掌握使用Visual C++ 6.0上机调试程序的基本方法; (2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在顺序存储结构和链表存储结构上的程序设计方法。 2.实验要求 (1)认真阅读和掌握和本实验相关的教材内容。 (2)认真阅读和掌握本章相关内容的程序。 (3)上机运行程序。 (4)保存和打印出程序的运行结果,并结合程序进行分析。 (5)按照你对线性表的操作需要,重新改写主程序并运行,打印出文件清单和运行结果 实验代码: 1)头文件模块 #include iostream.h>//头文件 #include//库头文件-----动态分配内存空间 typedef int elemtype;//定义数据域的类型 typedef struct linknode//定义结点类型 { elemtype data;//定义数据域 struct linknode *next;//定义结点指针 }nodetype; 2)创建单链表

nodetype *create()//建立单链表,由用户输入各结点data域之值,//以0表示输入结束 { elemtype d;//定义数据元素d nodetype *h=NULL,*s,*t;//定义结点指针 int i=1; cout<<"建立一个单链表"<> d; if(d==0) break;//以0表示输入结束 if(i==1)//建立第一个结点 { h=(nodetype*)malloc(sizeof(nodetype));//表示指针h h->data=d;h->next=NULL;t=h;//h是头指针 } else//建立其余结点 { s=(nodetype*) malloc(sizeof(nodetype)); s->data=d;s->next=NULL;t->next=s; t=s;//t始终指向生成的单链表的最后一个节点

南邮考研_微机原理真题

南邮考研_微机原理历年复试题 2004 问答:计算机系统/计算机组成原理的定义。 1.填空:字符串并,倒置 2.问答:8254方式N的特点(书P173-177) 3.问答:中断/DMA的区别,DMA的特点,DMA的传送方式 4.程序题:(2进制-10进制转换)(书P118) 5.程序题:串行的2种方式;8250初始化(P118) 6.程序填空:有关8254的 7.程序题:8254+8259A 8.问答:中断方式 2005 1.关于计算机中数制的转换 2.N位补码真值的范围 3.有关汇编中关于堆栈的地址计算 4.生成COM或EXE文件的汇编步骤(P85) 5.分析指令错误 6.8254的3个计数器的功能(P181) 7.异步通信数据格式(一帧数据的格式,P230) 8.非屏蔽中断条件(P202) 9.溢出错误的原因,单工,双工的概念(P229) 10.8255A方式1的联络线的定义及物理意义 11.程序题:8254计数器产生900HZ的方波,经过滤波后送到扬声器发声,当按下任意键声 音停止(P181) 12.程序题:(关于串操作指令)用多种方法进行数据块传送(P64) 2006 1.设字长为8位,X=(8EH)补其真值位F2 H 2.写出下列操作的寻址方式: MOV DL,DS:[BP+10] 基址 ADD DL,BUF 直接 3.用图表表示下列数据的存储方式: BUF1 DB 2乘5,0A6H,’HELLO’ BUF2 DD ‘AB’,’A’ BUF3 DW 87654321H 4.编写程序,把10字节的数据块从偏移地址BUF开始的单元传送到偏移地址BUF+5开 始的缓冲区 5.编写程序,输出800HZ的音乐(P238) 6.用一条操作完成下列目标: 使AL第1位置为1 使AL后4位为0

南京邮电大学2005年数据结构考研试卷

南 京 邮 电 学 院 2005年攻读硕士学位研究生入学考试 数 据 结 构 试 题 一、单选题(每题3分,共30分) 1. 设使用某算法对n 个元素进行处理,所需的时间是 T(n) = 100n log 2n + 200n + 2000 则该算法的渐进时间复杂度为 。 A. O(1) B. O(n) C. O(200n) D. O(nlog 2n) 2. 设顺序表的长度为n ,并设从表中删除元素的概率相等。则在平均情况下,从表中删除一个元素需要移动的元素个数是 。 A. (n -1)/2 B. n/2 C. n(n -1)/2 D. n(n +1)/2 3. 如果只保存一个n 阶对称矩阵a 的下三角元素(含对角线元素),并采用行主序存储在一维数组b 中,a[i][j](或a[i, j])存于b[k],则对i

数据结构实验报告-答案

数据结构(C语言版) 实验报告

专业班级学号姓名 实验1 实验题目:单链表的插入和删除 实验目的: 了解和掌握线性表的逻辑结构和链式存储结构,掌握单链表的基本算法及相关的时间性能分析。 实验要求: 建立一个数据域定义为字符串的单链表,在链表中不允许有重复的字符串;根据输入的字符串,先找到相应的结点,后删除之。 实验主要步骤: 1、分析、理解给出的示例程序。 2、调试程序,并设计输入数据(如:bat,cat,eat,fat,hat,jat,lat,mat,#),测 试程序的如下功能:不允许重复字符串的插入;根据输入的字符串,找到相应的结点并删除。 3、修改程序: (1)增加插入结点的功能。 (2)将建立链表的方法改为头插入法。 程序代码: #include"" #include"" #include"" #include"" typedef struct node . . 示意图:

head head head 心得体会: 本次实验使我们对链表的实质了解更加明确了,对链表的一些基本操作也更加熟练了。另外实验指导书上给出的代码是有一些问题的,这使我们认识到实验过程中不能想当然的直接编译执行,应当在阅读并完全理解代码的基础上再执行,这才是实验的意义所在。

实验2 实验题目:二叉树操作设计和实现 实验目的: 掌握二叉树的定义、性质及存储方式,各种遍历算法。 实验要求: 采用二叉树链表作为存储结构,完成二叉树的建立,先序、中序和后序以及按层次遍历 的操作,求所有叶子及结点总数的操作。 实验主要步骤: 1、分析、理解程序。 2、调试程序,设计一棵二叉树,输入完全二叉树的先序序列,用#代表虚结点(空指针), 如ABD###CE##F##,建立二叉树,求出先序、中序和后序以及按层次遍历序列,求 所有叶子及结点总数。 实验代码 #include"" #include"" #include"" #define Max 20 ertex=a; irstedge=NULL; irstedge; G->adjlist[i].firstedge=s; irstedge; R[i] 留在原位

南邮学长考研北邮调剂、刷楼上岸经验分享-些许感受

些许感受(调剂、刷楼) 注:原文由2019北邮考研录取学长(本科南邮)所写,经历调剂刷楼等艰辛过程,最终成功录取。写此经验留给外校同学以及调剂同学以参考。 初试不努力,调剂两行泪。拟录取名单出来了,总想着写点什么,一方面纪念下这段考研时光,另一方面是希望能给后来的学弟学妹一些有用的东西吧。 ——题记 写在前面:本文纯属个人体验以及感受,求轻喷。如有政策变化,请以当年政策为准,仅供参考。 本人2019年考研,报考的是北邮的信通院的通信学硕,总分376,政治59,英语一70,数学一116,通信原理131,分数不上不下,原报的组因为只收两个人的原因,所以进不了复试只能调剂,刷楼期间也有信通院的其他组老师伸来橄榄枝(后面会详细说说刷楼是个神马东西),但是最终选择了光研院,因为有几个风评不太好还有几个研

究方向不喜欢,我不愿意在不喜欢的事情上花几年时间,这是找调剂的最后倔强。 也不知从何说起,就按照时间顺序说吧。 首先,复习这方面,好像许多人现在就开始准备了吧。关于复习因为我考的也不是太好,所以也说不上来什么,不过如果有什么问题也可以私信我,知无不言。 其次,就到了选学院的时候了。信息与通信工程(工学)电子与通信工程(工程),北邮主要有三个学院招收该专业:信息与通信工程学院(信通院),电子科学与工程学院(电子院),信息光子学与光通信研究院(光研院),这三个学院各有其方向,顾名思义即可,其实没有什么高低上下之分只是研究方向不同而已。考研难度上一般来说,注意是一般来说!信通院>电子院>光研院,考研难度学硕>专硕。 提醒:许多同学在报考的时候比较盲目,只知道头铁去报信通院。成绩出来了之后,大批同学又开始疯狂调剂到光研院等,而在调剂时分数就不值钱了。好多同学340+去找调剂,放眼望去360+找调剂的还有一大批,如果在一开始没有头铁非要去信通院这条独木桥,340+在电子院或者光研院就可以进入一个不错的导师组了。所以理性一点,综合考虑下自己的情况,选择学院。

南京邮电大学通信与信息系统考研复试经验分享

南京邮电大学通信与信息系统考研复试 经验分享 序言:由于我初试报考的专业是通信与信息系统,所以对信号与信息处理不是很了解,而且我这里只有关于通信的部分信息! 一、个人情况 我初试成绩为370分,最初排名为54名(含推免生,总分直接排名),由于南邮复试分数线单科线偏高,有两名分数在370以上的同学被无情的刷掉,不能参加复试,然后我的复试表现非常不给力,最终成绩为567.67分,根据我研究发现我最终排在第95名(含推免生),但是南邮学硕招收119人,所以我还是惊险过关,最后还是心有余悸啊! 二、复试 1、南邮复试分四大块:英语口语(25分),英语听力(25分),专业课笔试(100),专业课面试(100)。总分两百五,注意:复试所有成绩在同一天出来,复试分数直接加在初试成绩上!! 2、邮通院今天复试顺序和时间:2010年4月10上午资格审查,下午英语听力和专业课考试;11日上午8:80—11:00为体检时间;12日:上午8:30开始面试,共分十组,如何分组待会再说!面试科目:英语口语和专业课!13日:计算总成绩,还是按初始排名公布,估计在四点半左右吧,那个时候非常多的人挤在那里,真是水泄不通,这时候任何表情都有。14:上午公布了,最终排名,以及每人录取的专业和学费情况,今年自费生很少,我只看到了学硕有两个人!然后选导师,下午领调档函回家! 3、复试人数:南邮今年复试共有400人参加(不含推免生,他们早已复试完),其中,通信至少在260人以上,我得出这个数字是因为我有一个同学他初试三百三十多,排在第260名。 4、复试考试:A、听力,全部是客观题,8个短对话,两个长对话(7题),还有三篇短文(10题),这是我记忆,说不定我记错了,这些听力我从来没见过,不像以往考的是六级,不过有的同学说前8个为2004年的6级听力,由于我现在没找到听力原文,无法鉴定,等我查阅后,我在给出答案!B、专业课考试,我奉劝各位同学,在研招网报名的时候在备注栏中指定复试科目,我复试的是数字信号处理,关于今年题型和题目,我会以回忆版的形式告诉学弟学妹(可能不完整)。 5、面试分组:共有四百人参加,复试共分10组,每组40人,关于如何分组,我在这详细讲一下,第一组第一名是初试排名的第一名,第一组第二名为初试排名的第11名,第一组第三名为初试排名的第21名,第二组第一名为初试排名的第二名。这四十人中,复试顺序:通信—信号—电子与通信工程! 1

数据结构A复习要点及样题(南邮)

数据结构A复习要点 第1章基础知识 算法与数据结构(数据结构概念、逻辑结构、数据存储结构示等) 数据抽象和抽象数据类型(数据结构规范、实现) 算法分析的基本方法(时间复杂性、空间复杂性) 第2章线性表 线性表的顺序和链接表示 理解在顺序表、单链表上实现线性表运算,能设计相应算法程序 顺序和链接表示的优缺点比较 第3章堆栈和队列 了解栈和队列的概念、特点 理解顺序栈和循环队列运算的实现 中缀表达式与后缀表达式的转换 后缀表达式计算 第4章数组和字符串 一般数组存储方法 三元组存储稀疏矩阵的方法 三元组表示的快速矩阵转置方法 字符串的概念、KMP算法及其改进 第5章树 二叉树的定义、性质及二叉链表 理解二叉树的遍历算法(遍历结果、算法设计),能设计相应算法程序 堆、堆的建立和调整 森林与二叉树的相互转换 哈夫曼树构造、哈夫曼编码、WPL计算 第6章集合与搜索 理解有序表的顺序搜索算法 理解对半搜索算法 平均搜索长度的计算 第7章搜索树 理解二叉搜索树的定义、性质和插入、删除算法 二叉平衡树的定义及插入算法 B-树的定义和插入、删除方法 第8章散列表 掌握散列函数的相关概念 散列函数 解决冲突的开地址法(线性探查法,二次探查法、双散列法) 第9章图 图的基本概念和存储结构 理解图的算法(结果):遍历、拓扑排序、最小代价生成树、关键路径、最短路径第10章内排序 三种简单排序算法、快速排序和两路合并排序算法、过程、结果 排序算法的时间复杂度(最好、最差,平均)、稳定性 第11章文件 文件的基本概念 初始游程的生成及竞赛树

考试样题 填空题 写出表达式a*b+c/d的后缀形式________。 已知一无向图G=(V,E),其中V={a,b,c,d,e},E={(a,b), (a,d), (a,c) (d,c), (b,e)},现用某一种遍历方法从顶点a开始遍历图,得到的序列为abecd,则采用的是__________遍历方法。 在顺序表长度为n中,平均在表中插入一个元素需要移动元素的个数可用计算公式为________。 一个表长为n的线性表,其排序时间最快为。 选择题 具有n 个顶点的有向完全图中,边的总数为()条。 A)n(n+1) B)n(n-1) C)n(n-1)/2 D)n(n+1)/2 设一个栈输入序列是1、2、3、4、5,则下列序列中不可能是栈的输出序列是()。 A)32541 B)15432 C)14523 D)23145 二叉树的前序遍历为EFHIGJK,中序遍历序列为HFIEJKG。该二叉树根结点的右子树的根是() A) E B) F C) G D) H 对有14个元素的有序表A[1]-A[14]作对半查找,查找元素A[4]时的被比较元素依次为() A. A[1],A[2],A[3],A[4] B.A[7],A[3],A[5],A[4] C. A[1],A[2],A[7],A[4] D.A[7],[A5],A[3],A[4] 设有一个长度为100且已排好序的表,用对半搜索进行查找,若搜索不成功,则至少要比较______次。 () A.9 B.8 C.7 D.6 简答题 用一维数组存放的一棵完全二叉树如图所示: 图 写出前序、中序、后序遍历该二叉树时访问结点的顺序。 图的邻接表表示一个给定的无向图。 (1)给出从顶点v1开始,用深度优先搜索法进行遍历时的顶点序列; (2)给出从顶点v1开始,用广度优先搜索法进行遍历时的顶点序列。

数据结构实验1

1.1实验步骤 随着计算机性能的提高,它所面临的软件开发的复杂度也日趋增加,因此软件开发需要系统的方法。一种常用的软件开发方法,是将软件开发过程分为分析、设计、实现和维护四个阶段。虽然数据结构课程中的实习题的复杂度远不如实际中真正的软件系统,但为了培养一个软件工作者所应具备的科学工作的方法和作风,我们制订了如下所述完成实验的5个步骤: 1、问题分析和任务定义 通常,实验题目的陈述比较简洁,或者说有模棱两可的含义。因此,在进行设计之前,首先应该充分地分析和理解问题,明确问题要求做什么,限制条件是什么,解决问题的关键是什么。注意:本步骤强调的是做什么,而不是怎么做。对问题的描述应避开算法和所涉及的数据类型,而是对所需完成的任务作出明确的回答。例如:输入数据的类型、值的范围以及输入的形式;输出数据的类型、值的范围及输出的形式;若是会话式的输入,则结束标志是什么,是否接受非法的输入,对非法输入的回答方式是什么等等。这一步还应该为调试程序准备好测试数据,包括合法的输入数据和非法形式输入的数据。 2.数据类型和算法设计 在设计这一步骤中需分概要设计和详细设计两步实现。概要设计指的是,对问题分析中提出的解决问题的关键点进行进一步阐述,提出问题的解决方案(算法思想);详细设计中首先对概要设计中涉及的操作对象定义相应的数据类型,并在具体的存储结构下描述关键问题解决过程;同时要综合考虑程序功能,按照以数据结构为中心的原则划分模块,说明各模块的功能,画出模块之间的调用关系图,模块的划分和调用应使得程序结构清晰、合理、简单和易于调试。详细设汁的结果是对数据结构和基本操作的规格说明作出进一步的求精,定义相应的存储结构并写出各过程和函数的伪码算法。在求精的过程中,应尽量避免陷入语言细节,不必过早表述辅助数据结构和局部变量。 3.编码实现和静态检查 编码是把详细设计的结果进一步求精为程序设计语言程序。如何编写程序才能较快地完成调试是特别要注意的问题。程序的每行不要超过60个字符。每个过程(函数)体一般不要超过40行,最长不得超过60行,否则应该分割成较小的过程(函数)。要控制if语句连续嵌套的深度,分支过多时应考虑使用switch语句。对函数功能和重要变量进行注释。一定要按格式书写程序,分清每条语句的层次,对齐括号,这样便于发现语法错误。 在上机之前,应该用笔在纸上写出详细的程序编码,并做认真地静态检查。多数初学者在编好程序后处于以下两种状态之一:一种是对自己的“精心作品”的正确性确信不疑;另一种是认为上机前的任务已经完成,纠查错误是上机的工作。这两种态度是极为有害的。对一般的程序设计者而言,当编写的程序长度超过50行时,通常会含有语法错误或逻辑错误。上机动态调试决不能代替静态检查,否则调试效率将是极低的。静态检查主要有两种方法,一是用一组测试数据手工执行程序(通常应先检查单个模块);二是通过阅读或给别人讲解自己的程序而深入全面地理解程序逻辑,在这个过程中再加入一些注解。 4.上机准备和上机调试 上机准备包括以下几个方面: (1)熟悉C语言用户手册或程序设计指导书。 (2)注意Turbo C、VC与标准C语言之间的细微差别。 (3)熟悉机器的操作系统和语言集成环境的用户手册,尤其是最常用的命令操作,以便顺利进行上机的基本活动。 (4)掌握调试工具,考虑调试方案,设计测试数据并手工得出正确结果。“磨刀不误砍柴工”。学生应该熟练运用高级语言的单步调试和程序调试器DEBUG调试程序。

《数据结构》实验1

实验1: 顺序表的操作实验 一、实验名称和性质 二、实验目的 1.掌握线性表的顺序存储结构的表示和实现方法。 2.掌握顺序表基本操作的算法实现。 3.了解顺序表的应用。 三、实验内容 1.建立顺序表。 2.在顺序表上实现插入、删除和查找操作(验证性内容)。 3.删除有序顺序表中的重复元素(设计性内容)。 4.完成一个简单学生成绩管理系统的设计(应用性设计内容)。 四、实验的软硬件环境要求 硬件环境要求: PC机(单机) 使用的软件名称、版本号以及模块: Windows环境下的VC++6.0 五、知识准备 前期要求熟练掌握了C语言的编程规则、方法和顺序表的基本操作算法。 六、验证性实验 1.实验要求 编程实现如下功能: (1)根据输入顺序表的长度n和各个数据元素值建立一个顺序表,并输出顺序表中各元素值,观察输入的内容与输出的内容是否一致。 (2)在顺序表的第i个元素之前插入一个值为x的元素,并输出插入后的顺序表中各元素值。 (3)删除顺序表中第i个元素,并输出删除后的顺序表中各元素值。 (4)在顺序表中查找值为e的数据元素,如果查找成功,则显示“查找成功”和该元素在顺序表中的位置,否则显示“查找失败”。 2. 实验相关原理: 线性表的顺序存储结构称为顺序表,顺序表的存储结构描述为: #define MAXLEN 30 /*线性表的最大长度*/ typedefstruct { Elemtypeelem[MAXLEN]; /*顺序表中存放元素的数组,其中elemtype为抽象数据类型,在程序

具体实现时可以用任意类型代替*/ int length; /*顺序表的长度,即元素个数*/ }Sqlist; /*顺序表的类型*/ 【核心算法提示】 1.顺序表插入操作的基本步骤:要在顺序表中的第i个数据元素之前插入一个数据元素x,首先要判断插入位置i是否合法,假设线性表的表长为n,则i的合法值范围:1≤i≤n+1,若是合法位置,就再判断顺序表是否满,如果满,则增加空间或结束操作,如果不满,则将第i个数据元素及其之后的所有数据元素都后移一个位置,此时第i个位置已经腾空,再将待插入的数据元素x插入到该位置上,最后将线性表的表长增加1。 2.顺序表删除操作的基本步骤:要删除顺序表中的第i个数据元素,首先仍然要判断i 的合法性,i 的合法范围是1≤i≤n,若是合法位置,则将第i个数据元素之后的所有数据元素都前移一个位置,最后将线性表的表长减1。 3.顺序表查找操作的基本步骤:要在顺序表中查找一个给定值为e的数据元素,则可以采用顺序查找的方法,从顺序表中第1个数据元素开始依次将数据元素值与给定值e进行比较,若相等则查找成功,函数返回该数据元素在顺序表中的位置,若顺序表中所有元素都与给定值e不相片,则查找失败,函数返回0值。 【核心算法描述】 status Sqlist_insert(Sqlist&L,inti,Elemtypex) /*在顺序表L中第i个元素前插入新元素x*/ {if (i<1||i>L.length+1) return ERROR; /*插入位置不正确则出错*/ if (L.length>=MAXLEN) return OVERFLOW; /*顺序表L中已放满元素,再做插入操作则溢出*/ for(j=L.length-1;j>=i-1;j--) L.elem[j+1]=L.elem[j];/*将第i个元素及后续元素位置向后移一位*/ L.elem[i-1]=x; /*在第i个元素位置处插入新元素x*/ L.length++; /*顺序表L的长度加1*/ return OK; } status Sqlist_delete(Sqlist&L,inti,Elemtype&e) /*在顺序表L中删除第i个元素*/ {if (i<1||i>L.length)return ERROR; /*删除位置不正确则出错*/ for(j=i;j<=L.length-1;j++) L.elem[j-1]=L.elem[j]; /*将第i+1个元素及后继元素位置向前移一位*/ L.length--; /*顺序表L的长度减1*/ return OK; } int Sqlist_search(SqlistL,Elemtype x) /* 在顺序表中查找值为x的元素,如果找到,则函数返回该元素在顺序表中的位置,否则返回0*/

南邮学硕和专硕的区别(修改版)

1、学术型研究生和全日制专业学位研究生有何区别?攻读全日制专业学位有毕业证书吗? 学术型研究生和全日制专业学位研究生,都采取全日制攻读的方式,处于同一层次,在培养目标上有明显差异。 学术型学位研究生是掌握本学科坚实的基础理论和系统的专业知识,具有创新精神、创新能力和从事科学研究、教学、管理等工作能力的高层次学术型专门人才。 专业学位研究生是掌握本学科坚实的基础理论和系统的专业知识,具有较强解决实际问题的能力、能够承担专业技术或管理工作、具有良好职业素养的高层次应用型专门人才。 全日制专业学位研究生为国民教育序列的研究生学历教育,在修完学校规定的学位课程、通过论文答辩后,毕业时可以获得毕业证书和学位证书(俗称“双证”)。 2、如何确定研究生导师和研究方向?学制几年? 硕士生按专业招生,在复试阶段由学院安排导师与学生双向选择,确定研究方向和导师,导师简介在研究生院网页查看。报名时可参考“专业方向介绍”,填写自己感兴趣的研究方向。硕士研究生学制一般为两年半。[注:南邮专硕也是两年半学制] PS:专业方向可以随便填写一个,最后导师方向才是自己的方向。 3、复试科目能否与初试科目相同?如何确定复试科目? 复试科目不能与初试科目相同。你可在初试后通过我校《研究生招生管理信息系统》选择确定自己的复试科目,报名时无需在“备注”中填写。 4、2014级研究生收费标准及奖助学金(学硕、专硕同):

8、专硕与学硕,分别招的多少的问题? 每个院安排不同,不存在绝对比例。就拿2014年,通院专硕(加保研的)录取一共214,通院通信学硕录取108,通院信号学硕录取108 ,还有南邮教育学这一块,只有学硕。 2014年8月16日整理

2014年数据结构补考试题

一填空题 1.已知一N*N三角矩阵按行序为主序存放,下标从1开始,每个元素占l字节,则a[i][j]地址为当i≥j时,地址为i(i+1)/2+j-1;当i=i;j--) s; 13.在单链表中设置头结点的作用是使所有链表的头指针非空,并使对单链表的插入、删除操作不需要区分是否为空表或是否在第一个位置进行,从而与其他位置的插入、删除操作一致(插入和删除首元结点时不用进行特殊处理)。 14.中缀式a+b*3+4*(c-d)对应的前缀式为 ++a×b3×4-cd,若a=1,b=2,c=3,d=4,则后缀式db/cc*a-b*+的运算结果为18 。 15.有向图G的强连通分量是指有向图的极大强连通子图。 18.设单链表的结点结构为(data,next),next为指针域,已知指针px指向单链表中data为x的结点,指针py指向data为y的新结点 , 若将结点y插入结点x之后,则需要执行以下语句: py->next=px->next; px->next=py; 19. 数组的存储结构采用顺序存储方式。 二选择题 1.以下数据结构中,哪一个是线性结构(D) A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串 2.对稀疏矩阵进行压缩存储目的是(C)。 A.便于进行矩阵运算 B.便于输入和输出 C.节省存储空间 D.降低运算的时间复杂度 3.非空的循环单链表head的尾结点p↑满足(A)。 A.p↑.link=head B.p↑.link=NIL C.p=NIL D.p= head

南邮考研大纲

南京邮电大学全国统考硕士生入学考试业务课程大纲 课程编号:814 课程名称:通信原理 一、考试的总体要求 通信原理属于电子信息技术类专业的一门重要的基础理论课程。因此要求考生必须较好地掌握通信系统的基本原理,基本性能和基本的分析方法;并应了解通信网的基本概念。能够运用数学的方法分析通信系统中各种调制、解调原理,掌握有关编码和解码的原理和方法,能够对各系统进行抗噪声性能分析。能够应用所学知识,对目前通信领域的一些实际问题进行分析研究,并能根据要求设计出性能指标较高的适用的通信系统,掌握对一般通信网的理论分析方法。了解通信的发展动态。主要考核考生对基本知识和基本技能的掌握程度,了解考生在通信领域中分析问题和解决问题的能力。 二、考试的内容及比例 1. 通信的基本概念:定义,系统模型,信息的度量、性能分析。(占 5%) 2.信道特性:恒参和变参信道,随机信号分析、信道中的加性噪声,信道容量公式。(占10%) 3.模拟通信系统:调制的概念和调制的分类、幅度调制和角度调制的时域和频域分析,产生和解调方法,带宽和功率的计算,噪声性能分析。频分复用。(占15%) 4.信源编码:抽样定理;PCM和ΔM的编译码原理,噪声性能分析;PCM和ΔM的改进型;时分复用。(占15%) 5.数字信号的基带传输:常用码型,数字基带信号的功率谱、基带传输特性,无码间串扰,奈奎斯特准则,眼图和均衡,部分响应技术。(占10%) 6.数字信号的载波传输:二进制数字调制和解调方法,性能分析。多进制数字调制的基本原理,产生和解调方法。各种数字调制的带宽计算。二进制和四进制数字调相的波形分析。最佳接收基本概念、最大输出信噪比准则和匹配滤波器的概念。(占10%) 7,现代数字调制技术;MSK、QAM、π/4-QPSK、OQPSK,扩频通信等的基本原理,调制和解调方法。码分多址的基本概念。(占5%) 8.同步原理:载波同步、位同步、帧同步及网同步的基本原理和实现方法。(占

2001年南邮考研数据结构考研试卷

南 京 邮 电 学 院 2001年攻读硕士学位研究生入学考试 数 据 结 构 试 题 一、完成下列各题(每小题6分,共18分): 1、已知字符串p = ‘abbabbac ’,计算next(7)和nextval(7)的值。 2、给出下列排序算法最坏的情况时间复杂性,并指出其中那些算法是稳定的? ⑴快速排序 ⑵简单选择排序 ⑶堆排序 3、设度为m 的树采用多重链表存储,每个结点有m+1个域,其中有一个数据域,m 个指向孩子的指针域。则空指针的数目是多少?说明这种存储方式的利弊。 二、完成下列各题:(每小题8分,共40分) 1、设二叉树以带右链的先序次序存储,其存储结构如下: 6 3 5 0 0 0 9 0 0 0 E H F I G A B D C J 1 2 3 4 5 6 7 8 9 10 则画出该二叉树。 2 、对于下列AOE 网络,求出各活动可能的最早开始时间和允许的最晚完成时间,并问整个工程的最短完成时间是多少? 3、设有13个初始游程,其长度分别为28,16,33,19,5,7,18,20,12,31,38,22,10。试画出4路合并最佳合并树,并计算它的加权路径长度。 4、设散列表ht 的长度为11,散列函数h 1(key) = key mod 11,h 2(key)=key mod 9+1。采用双重探查法解决冲突,请从空表开始,依次插入下列关键字值序列:70,25,80,35,60,45,50,55,建立散列表。

5、设有初始关键字值序列为:71,74,2,72,54,93,52,28,现采用堆排序方法进行排序,请给出手工执行堆排序的过程。 三、设E是一棵扩充二叉树的外路径长度,I是内路径长度,n是内结点个数。试写出三者的关系式,并使用数学归纳法证明之。(10分) 四、有序表以顺序方式存储,其存储结构说明如下: Type list=array[1..n] of integer 实现下列对半查找的函数过程: Function bisearch(r:list;low,high,tkey:integer):integer; 其中,tkey为待查关键字值。若tkey在表r中,则返回该关键字值在表中的位置,否则返回0。并画出n=10的对半查找判定树。(16分) 五、已知有n个结点的树以双亲表示法存储在一堆数组中。请设计一个的算法求树中每个结点的层次和树的高度,将求得的每个结点的层次保存在一维数组c中,并分析你所设计的算法的时间复杂性。(16分)

相关文档
最新文档