上海交大网络数据结构第一次作业

合集下载

16秋上海交大网络计算机第一次作业讲解

16秋上海交大网络计算机第一次作业讲解

题目1正确获得1分中的1分题干计算机系统应该包括硬件和软件两个子系统。

不装备软件的计算机称为______。

选择一项:a. 初级计算机b. 纯计算机c. 原始计算机d. 裸机反馈正确答案是:裸机题目2正确获得1分中的1分题干鼠标是快速输入设备,关于键的使用,下列四个说法错误的是______。

选择一项:a. 大部分操作使用左键b. 左、右键的作用完全相同c. 根据不同软件要求有时使用中键d. 有时使用右键反馈正确答案是:左、右键的作用完全相同题目3正确获得1分中的1分题干下列四个计算机存储容量的换算公式中,正确的是______。

选择一项:a. 1MB=1024GBb. 1KB=1000Bc. 1MB=1024KBd. 1KB=1024MB反馈正确答案是:1MB=1024KB题目4正确获得1分中的1分题干下列四个计算机存储容量的换算公式中,错误的是______。

选择一项:a. 1MB=1024KBb. 1KB=1024MBc. 1GB=1024MBd. 1KB=1024反馈正确答案是:1KB=1024MB题目5正确获得1分中的1分题干下列设备中,属于输出设备的是______。

选择一项:a. 触摸屏b. 显示器c. 扫描仪d. 光笔反馈正确答案是:显示器题目6正确获得1分中的1分题干十进制数124转换成二进制数是______。

选择一项:a. 1011111Bb. 1111100Bc. 1111010Bd. 1111011B反馈正确答案是:1111100B题目7正确获得1分中的1分题干在第三代计算机期间内按规模和性能产生了______。

选择一项:a. 巨、大、中和小型机b. 包含笔记本电脑在内的序列机c. 大、中、小和微型机d. 包含微型机在内的序列机反馈正确答案是:巨、大、中和小型机题目8正确获得1分中的1分题干在第三代和第四代计算机中采用的电子器件主要是______。

选择一项:a. 晶体管b. 集成电路c. 电子管d. 激光管反馈正确答案是:集成电路题目9正确获得1分中的1分题干计算机中为解决某一特定问题而设计的指令的有序集合称为______。

上海交大网络数据库原理与应用第一次作业

上海交大网络数据库原理与应用第一次作业

(1)找出所有供应商的姓名和所在城市。

SELECT SNAME,CITY FROM S(2)找出所有零件的名称、颜色、重量。

SELECT PNAME,COLOR,WEIGHT FROM P(3)找出使用供应商S1所供应零件的工程号码。

SELECT DIST JNO FROM SPJ WHERE SNO='S1'(4)找出工程项目J2使用的各种零件的名称及其数量。

SELECT PNAME,QTY FROM SPJ,PWHERE P.PNO=SPJ.PNO AND SPJ.JNO='J2'(5)找出上海厂商供应的所有零件号码。

SELECT PNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND CITY='上海'(6) 找出使用上海产的零件的工程名称。

SELECT JNAME FROM SPJ,S,JWHERE S.SNO=SPJ.SNO AND S.CITY='上海' AND J.JNO=SPJ.JNO(7)找出没有使用天津产的零件的工程号码。

注意: SELECT DISP JNO FROM SPJ WHERE JNO NOT IN (SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY='天津') 适用于JNO是唯一或不唯一的情况.注意: SELECT DIST JNO FROM SPJ,S WHERE S.SNO=SPJ.SNO AND S.CITY<>'天津'适用于JNO是唯一的情况(8)把全部红色零件的颜色改成蓝色。

UPDA TE P SET COLOR='蓝' WHERE COLOR='红'(9)由S5供给J4的零件P6改为由S3供应。

UPDA TE SPJ SET SNO='S3' WHERE SNO='S5' AND JNO='J4' AND PNO='P6'(10)从供应商关系中删除供应商号是S2的记录,并从供应情况关系中删除相应的记录。

上海交大2010年数据结构上机考试题目

上海交大2010年数据结构上机考试题目

2010-2011学年秋季《数据结构A类》上机考试题(普通班)考试时间:2011年1月7日10:00-13:00The ClocksConsider nine clocks arranged in a 3x3 array thusly:|-------| |-------| |-------|| | | | | | ||---O | |---O | | O || | | | | ||-------| |-------| |-------|A B C|-------| |-------| |-------|| | | | | || O | | O | | O || | | | | | | | ||-------| |-------| |-------|D E F|-------| |-------| |-------|| | | | | || O | | O---| | O || | | | | | | ||-------| |-------| |-------|G H IThe goal is to find a minimal sequence of moves to return all the dials to 12 o'clock. Nine different ways to turn the dials on the clocks are supplied via a table below; each way is called a move. Select for each move a number 1 through 9 which will cause the dials of the affected clocks (see next table) to be turned 90 degrees clockwise.ExampleEach number represents a time according to following table:9 9 12 9 12 12 9 12 12 12 12 12 12 12 126 6 6 5 -> 9 9 9 8-> 9 9 9 4 -> 12 9 9 9-> 12 12 126 3 6 6 6 6 9 9 9 12 9 9 12 12 12[But this might or might not be the `correct' answer; see below.]INPUT FORMATSAMPLE INPUT9 9 126 6 66 3 6OUTPUT FORMATA single line that contains a space separated list of the shortest sequence of moves (designated by numbers) which returns all the clocks to 12:00. If there is more than one solution, print the one which gives the lowest number when the moves are concatenated (e.g., 5 2 4 6 < 9 3 1 1).SAMPLE OUTPUT4 5 8 9HINTNotice that the order in which we apply moves is irrelevant, and that applying a move four times is the same as applying it not at all.Thus there are only 49 = 262144 move sequences that need to be tried, so we might as well just try them all.We don't generate them shortest first, but looking at sequences of the same length, we generate the lesser ones before the greater ones, so we only need to keep track of the shortest working sequencewe've found.二叉树遍历给出一棵完美二叉树(所有叶子节点高度相同,所有非叶子节点都有两个子节点)的描述,输出按层次顺序遍历这棵二叉树的结果。

2018年度交大计算机的第一次作业

2018年度交大计算机的第一次作业

1、多媒体计算机系统同一般计算机相比,特别需要利用计算机的数字化技术和______________ 。

选择一项:広a.通信技术D b.安全技术匕c.人机交互技术7匚d.存储技术2、计算机应用中,英文缩略语CAI所表示的计算机术语是_________ 。

* a.计算机辅助教学D b.计算机辅助设计匕c.计算机辅助制造匚d.计算机辅助工程3、当前气象预报已广泛采用数值预报方法,这主要涉及计算机应用中的____________ 。

匕a.数据处理和辅助设计□ b.科学计算与辅助设计-c.科学计算和数据处理d.科学计算和过程控制4、与二进制数110101110等值的十六进制数是屛b鼠标d.打印机/扫描仪6、假设给定一个十进制整数D,转换成对应的二进制整数B,那么就这两个数字的位数而言,B与D 相比, ________ 。

a. Db. Bc. DA d. B的位数大于等于的位数大于的位数大于的位数大于等于7、为解决某一特定的问题而设计的指令序列称为广a.b.语言文档c.系统卜d.程序丫8、对微机配置描述为中内存为 _________ 。

ra. 1.7G多媒体”,其b. 128MBI-c. 60GBa. 35ED b. 1AE fc. D70匚d. EA25、以下为计算机输出设备的是______________ 匸a.键盘d. 40X9、目前制造计算机所用的电子元件是广a.晶体管A b.集成电路电子管广c.超大规模集成电路10、有一类计算机应用领域称为 "CAD",也就是b. 逢十六进 a. 计算机辅助教学c. b. 计算机辅助制造d. 逢八进15、八进制数631转成二进制数是c. 计算机辅助设计 计算机辅助管理d. a.10011101111、计算机内部采用二进制数进行运算、存储和控 制的主要原因是 广 b. 101011001a. 现/二进制只有0、1 两种状态,技术上容易实 c. 110011001 d.110100001二进制数数码少, b. 快 16、计算机的主机的组成部分是在计算机网络中传送速度 a. CPU 、外存储器、外部设备c. 二进制数数码少, 比十进制数容易读懂和记 广b. CPU 和存储器系统忆 二进制数数码少, d. c.主机箱、键盘、显示器存储起来占用的存储容量 小 12、在计算机中,所有信息的存储都采用 屛d. CPU 和内存储器17、下面哪一项不是计算机采用二进制的主要原因a. 卜六进制 二进制/b. a. 二进制只有0和1两个状态,技术上容易实c. 八进制 广bb. 二进制数的o 和1与逻辑代数的"真”和"假"十进制 d. 相吻合, 适合于计算机进行逻辑运算 13、计算机操作系统作为一个接口, 连接着广c. 二进制运算规则简单a. 用户与计算机7 金dd.二进制可与十进制直接进行算术运算b. 主机与外设 18、高级语言所编写的程序又称为源程序,此类程 序c. 系统软件与应用软件 a. 不大于100行的程序可以被机器直接执行 用户与软件d. A b.在更高级的大型计算机中能被机器直接执14、十进制数的运算法则是 a.逢二进 c. 不能被机器直接执行d.能被机器直接执行19、光盘是一种已广泛使用的外存储器,英文缩写CD-ROM旨的是_______ 。

上海交大--数据结构-实验报告

上海交大--数据结构-实验报告

上海交大--数据结构-实验报告《数据结构》实验报告说明:本软件在win7 64位系统测试通过,需要安装.net 3.5以上版本七、数制转换问题1.问题描述对于输入的任意一个非负十进制整数,输出与其等值的其他进制数(二进制、八进制或十六进制)。

2.任务要求⑴建立模型,确定存储结构;⑵对任意十进制数,实现进制转换问题。

3.实验指导(1) 实验类型:设计实验。

本实验要求同学们针对“数制转换”这个经典的问题,应用栈的存储结构,自己设计一个方案,并上机实现。

此实验的目的是培养学生对数据结构的简单应用能力。

(2) 预备知识:栈的基本定义、栈的基本操作算法、栈的存储结构。

(3) 实现方法提示:1) 以十进制转换为八进制为例。

将十进制数整除8,计算过程中得到的余数依次进栈,按出栈序列输出栈中的内容即为与输入的十进制数对应的八进制数。

设Conversion函数执行数制转换的操作,对(1348)10转换为8进制的过程如下:}///<summary>///十进制转换为八进制///</summary>///<param name="sender"></param>///<param name="e"></param>private void radio_dto_Click_1(object sender, EventArgs e){txtEnd.Text = "";if (txtStart.Text.Length != 0){// TODO: 十进制转为八进制。

Int32 i;try{i = Convert.ToInt32(txtStart.Text.Trim());lblTitle.Text = "十进制转为八进制";txtEnd.Text = Convert.ToString(i, 8);}catch{MessageBox.Show("请输入合法的十进制数", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);}}else{MessageBox.Show("请提供转换数据!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);}txtStart.Focus();}///<summary>///十进制转换为十六进制///</summary>///<param name="sender"></param>///<param name="e"></param>private void radio_dth_Click(object sender, EventArgs e){txtEnd.Text = "";if (txtStart.Text.Length != 0){// TODO: 十进制转换为十六进制。

上海交大十月份数据结构上机实验考试题 2012-11-17

上海交大十月份数据结构上机实验考试题 2012-11-17

模拟题一、有一只猫抓了n (n>1)个老鼠后向老鼠宣布:老鼠按自然数进行编号(1~n),并按自然数顺序排队,以后先后次序不准变;于是猫每天吃掉编号为奇数的老鼠,剩下的老鼠再按原次序进行自然数编号,直至某一天只剩下一只小老鼠;而该小老鼠是猫从第一天起就想吃掉的那只,请问这只小老鼠的最初编号是几?(1)用链结构实现,链的每个节点所包含的“数据域”信息是老鼠的最初编号(从1开始编号),另一个信息是链的下一节点地址。

(2)建立一条有n个节点的链:先创建一个空链,然后向链尾插入n 个节点。

(3)开始删除奇数节点:从链首开始删除“奇”节点,直至链尾;判断链是否只剩下一个节点?不是则循环执行上一步,是则结束循环。

(4)输出结果。

(5)程序编写完成后,请以f1.c或f1.cpp作为文件名存放到F盘上。

答案:#include <iostream.h>#include <assert.h>struct mouse //链“节点”类声明{int n;mouse *nextptr;};int cat_mouse(int num) //函数定义{mouse *headptr=0,*tailptr=0,*frontptr,*p;int i;//先把1个老鼠加入链作为链首节点headptr=tailptr=new mouse;assert(headptr!=NULL); //动态内存分配异常处理headptr->n=1; //老鼠的编号headptr->nextptr=NULL;//在链尾再添加n-1个老鼠for(i=2;i<=num;++i){p=new mouse;assert(p!=NULL);p->n=i;cout<<p->n<<" ";tailptr->nextptr=p;tailptr=p;tailptr->nextptr=NULL; //设置链尾节点的“下一节点地址”为空//开始删除老鼠while(headptr!=tailptr) //每循环一次,删除链上的奇节点,直至只剩下1个节点 { p=headptr->nextptr; //链的首节点总是先被删除delete headptr; //析构首节点headptr=frontptr=p; //本次循环的第2个节点成为链的首节点 i=2; //从第2个节点开始循环:删除链的奇节点 while(p!=NULL) //从2开始循环至链尾节点{if((i%2)==1) //是奇节点{if (p->nextptr==NULL) //如果该奇节点是最后一个节点 {frontptr->nextptr=NULL; //前一节点成为链的尾节点tailptr=frontptr;delete p;p=NULL; //因本循环的判断条件是p!=NULL,到链尾,所以置为0 }else //是奇节点但不是尾节点,删除{frontptr->nextptr=p->nextptr; //从链上删除该奇节点 delete p;p=frontptr->nextptr; //下一节点的地址已保存在frontPtr的 nextPtr中 ++i;} //frontPtr成为被删节点的下一节点的上一节点,故值不变 }else //不是奇节点,不删除{frontptr=p;p=p->nextptr;++i;}}}return headptr->n; //返回最后一个节点的编号}void main() //主函数{int i, num;do{cout<<"\n请输入老鼠的只数(大于1,输入0退出):";cin>>num;if(num>1){i=cat_mouse(num);cout<<"最后剩下的一只老鼠是:"<<i<<endl;}}while(num!=0);以下为软件运行环境实效(在C++6.0中书写好的答案截图)注意点:1、考试考号和座位号(上机号)有一定的对应关系,跟老师确认后输入,以免做了成绩给了别人;2、就一大题,6.00开考,7.00结束;3、后面的截图是软件的实际操作界面,作为参考;。

交大计算机网络第一次作业

交大计算机网络第一次作业

第一次作业题目1OSI模型中,通常是_____层负责将比特流或字符流转换成帧格式。

选择一项:a. 物理层b. 数据链路层c. 网络层d. 传输层题目2对于网络模型来说,路由器是工作在_____层的设备。

选择一项:a. 物理层b. 数据链路层c. 网络层d. 应用层题目3HUB是工作在______层的设备。

选择一项:a. 物理层b. 数据链路层c. 网络层d. 应用层题目4FTP、Telnet等属于_______层的应用系统。

选择一项:a. 物理层b. 数据链路层c. 网络层d. 应用层题目5OSI模型中,由_____负责比特流的透明传输。

选择一项:a. 物理层b. 数据链路层c. 网络层d. 传输层题目6哪种物理层编码技术可用于解决连续的0或连续1的问题。

_____ 选择一项:a. 不归零制和曼切斯特编码b. 只有不归零制编码c. 只有曼切斯特编码d. 没有一种编码可以题目7如果用telnet 传输一串信息,那么真正在物理媒体上传输的信息是_____。

选择一项:a. 上的网页b. 上的字符c. 的分组d. 以某种形式调制的0或1数据题目8在一条无噪声的信道上,如果带宽是4MHz,信号分成32个等级,那么,信道的最大比特率(即数据传输率)为_____bps。

选择一项:a. 4Mb. 8Mc. 20Md. 40M题目9在一条无噪声的信道上,如果带宽是4MHz,信号分成32个等级,那么,信道对应波特率为_____波特。

选择一项:a. 4Mb. 8Mc. 20Md. 40M题目10在一条无噪声的信道上,如果带宽是4MHz,信号分成32个等级,那么,发送一个20KB的文件最短需要的时间是_____。

选择一项:a. 8msb. 4msc. 1msd. 0.5ms题目11一路电话的带宽为_____。

选择一项:a. 4Kbpsb. 8Kbpsc. 56Kbpsd. 64Kbps题目12HFC用了_____多路复用的方法。

05955_上海交大ACM班C算法与数据结构C算法初级1

05955_上海交大ACM班C算法与数据结构C算法初级1
13
二维数组及矩阵操作
二维数组的定义和初始化 矩阵的基本运算:加法、减法、乘法、
转置
2024/1/24
二维数组的基本操作:赋值、访问、遍 历 特殊矩阵的压缩存储与处理
14
字符串处理函数库介绍
01
字符串的输入/
2024/1/24
02
字符串的常用操作:连接、 比较、复制、替换等
03
字符串处理函数库中的常用 函数及其功能
2024/1/24
4
C语言在算法与数据结构中的重要性
2024/1/24
底层语言,性能优越
C语言作为底层语言,能够直接操作内存和硬件,具有高 效、灵活和可移植性等优点,适合用于实现各种复杂的数 据结构和算法。
广泛应用,基础扎实
C语言在操作系统、编译器、嵌入式系统等领域有着广泛 应用,掌握C语言有助于理解计算机底层原理和系统级编 程。
的解决方案。
文件读写错误问题
分析文件读写过程中可能出现的错误 情况,如读写越界、数据类型不匹配 等,并提供相应的处理方法。
文件关闭不及时问题
强调文件关闭的重要性,分析文件关 闭不及时可能导致的后果,并提供相 应的处理措施。
31
THANKS
2024/1/24
32
指针变量
定义指针变量、初始化指针变量、赋值与取值 操作。
2024/1/24
空指针与野指针
了解空指针与野指针的概念及危害,避免在编程中出现此类错误。
18
动态内存分配与管理
动态内存分配
使用malloc、calloc等函数在堆区动态分配 内存空间。
内存释放
使用free函数释放已分配的内存空间,防止 内存泄漏。
推动计算机学科发展

上海交大ACM班C算法与数据结构C算法初级1

上海交大ACM班C算法与数据结构C算法初级1

上海交大ACM班C算法与数据结构C算法初级1一、教学内容本节课的教学内容来自上海交大ACM班C算法与数据结构,主要涉及C算法初级部分。

教材的章节包括:C语言基础、算法概述、排序算法、查找算法、图算法等。

具体内容如下:1. C语言基础:数据类型、运算符、表达式、语句、函数等。

2. 算法概述:算法的概念、算法的设计方法、算法分析与评价等。

3. 排序算法:冒泡排序、选择排序、插入排序、快速排序等。

4. 查找算法:顺序查找、二分查找、哈希查找等。

5. 图算法:深度优先搜索、广度优先搜索、最短路径算法等。

二、教学目标1. 使学生掌握C语言的基础知识,能够熟练使用C语言进行编程。

2. 使学生了解算法的基本概念,学会设计简单的算法。

3. 使学生掌握常见的排序算法和查找算法,能够分析算法的时间复杂度。

三、教学难点与重点1. 教学难点:排序算法和查找算法的具体实现,算法的时间复杂度分析。

2. 教学重点:C语言基础知识的掌握,算法的设计与分析。

四、教具与学具准备1. 教具:计算机、投影仪、黑板、粉笔。

2. 学具:学生用书、笔记本、编程环境(如Visual Studio、Code::Blocks等)。

五、教学过程1. 实践情景引入:通过一个简单的实例,让学生感受算法在解决问题中的重要性。

2. C语言基础知识讲解:介绍数据类型、运算符、表达式等基本概念,并通过示例进行讲解。

3. 算法概述:讲解算法的概念、设计方法以及算法分析与评价。

4. 排序算法讲解:介绍冒泡排序、选择排序、插入排序、快速排序等排序算法的原理和实现。

5. 查找算法讲解:介绍顺序查找、二分查找、哈希查找等查找算法的原理和实现。

6. 图算法讲解:介绍深度优先搜索、广度优先搜索、最短路径算法等图算法的原理和实现。

7. 随堂练习:让学生通过编写代码,实现某个具体的算法。

8. 作业布置:布置与本节课内容相关的编程作业,巩固所学知识。

六、板书设计1. C语言基础:数据类型、运算符、表达式等基本概念。

数据结构习题及参考答案_上海交通大学成人教育学院

数据结构习题及参考答案_上海交通大学成人教育学院

A.基地址 B.结点大小 C.向量大小 D.基地址和结点大小 12. 在等概率情况下,顺序表的插入操作要移动______结点。 A.全部 B.一半 C.三分之一 D.四分之一 13. 在______运算中,使用顺序表比链表好。 A.插入 B.删除 C.根据序号查找 D.根据元素值查找 14. 在一个具有n个结点的有序单链表中插入一个新结点并保持该表有序的时间复杂度是 _______。 A.O(1) B.O(n) 2 C.O(n ) D.O(log2n) 15. 设有一个栈,元素的进栈次序为A, B, C, D, E,下列是不可能的出栈序列__________。 A.A, B, C, D, E B.B, C, D, E, A C.E, A, B, C, D D.E, D, C, B, A 16. 在一个具有n个单元的顺序栈中,假定以地址低端(即0单元)作为栈底,以top作为栈 顶指针,当做出栈处理时,top变化为______。 A.top不变 B.top=0 C.top-D.top++ 17. 向一个栈顶指针为hs的链栈中插入一个s结点时,应执行______。 A.hs->next=s; B.s->next=hs; hs=s; C.s->next=hs->next;hs->next=s; D.s->next=hs; hs=hs->next; 18. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针, 则判断队满的条件为________。 A.rear%n= = front B. (front+l)%n= = rear C.rear%n -1= = front D.(rear+l)%n= = front 19. 在具有n个单元的顺序存储的循环队列中,假定front和rear分别为队头指针和队尾指针, 则判断队空的条件为________。 A.rear%n= = front B.front+l= rear C.rear= = front D.(rear+l)%n= front 20. 在一个链队列中,假定 front和rear分别为队首和队尾指针,则删除一个结点的操作为 ________。 A.front=front->next B.rear=rear->next C.rear=front->next D.front=rear->next 二、填空题 1. 线性表是一种典型的_________结构。 2. 在一个长度为n的顺序表的第i个元素之前插入一个元素,需要后移____个元素。 3. 顺序表中逻辑上相邻的元素的物理位置________。 4. 要从一个顺序表删除一个元素时,被删除元素之后的所有元素均需_______一个位置, 移动过程是从_______向_______依次移动每一个元素。 5. 在线性表的顺序存储中,元素之间的逻辑关系是通过_______决定的;在线性表的链接 存储中,元素之间的逻辑关系是通过_______决定的。 6. 在双向链表中,每个结点含有两个指针域,一个指向_______结点,另一个指向_______ 结点。 7. 当对一个线性表经常进行存取操作,而很少进行插入和删除操作时,则采用 _______存

西大2022版[0012]《数据结构》网上作业及课程考试复习资料有答案

西大2022版[0012]《数据结构》网上作业及课程考试复习资料有答案

西大2022版[0012]《数据结构》网上作业及课程考试复习资料有答案[0012]《数据结构》第一次作业[填空题]1、已知栈的基本操作函数:intInitStack(SqStack某S);//构造空栈intStackEmpty(SqStack某S);//判断栈空intPuh(SqStack某S,ElemTypee);//入栈intPop(SqStack 某S,ElemType某e);//出栈函数converion实现十进制数转换为八进制数,请将函数补充完整。

voidconverion(){InitStack(S);canf(\while(N){(1);N=N/8;}while((2)){Pop(S,&e);printf(\}}//converion2.设循环队列的容量为70,现经过一系列的入队和出队操作后,front为20,rear为11,则队列中元素的个数为3.在一个单链表中删除p所指结点的后继结点时,应执行以下操作:q=p->ne某t;p->ne某t=____;4.一个算法的效率可分为()效率和()效率。

5.数据结构被形式地定义为(D,R),其中D是()的有限集合,R是D上的()有限集合。

6.下面程序段的时间复杂度是()。

for(i=0;i参考答案:1.(1)Puh(S,N%8)2.613.q->ne某t4.时间空间5.数据元素关系6.m某n[单选题]一个具有n个顶点的有向图最多有()条边A:n某(n-1)/2B:n某(n+1)/2C:n某(n-1)D:n2参考答案:B[判断题]折半查找只适用于有序表,包括有序的顺序表和链表参考答案:错误[判断题]用循环单链表表示的链队列中,可以不设队头指针,仅在队尾设置队尾指针。

参考答案:正确[判断题]在单链表中,要访问某个结点,只要知道该结点的地址即可;因此,单链表是一种(2)!StackEmpty(S)随机存取结构。

参考答案:错误[单选题]判断一个循环队列Q(最多n个元素)为满的条件是:A:Q->front==(Q->rear+1)%nB:Q->rear==Q->front+1C:Q->front==(Q->rear-1)%nD:Q->rear==Q->front参考答案:A[单选题]在单链表中,指针p指向元素为某的结点,实现删除某的后继的语句是:A:p=p->ne某tB:p=p->ne某t->ne某tC:p->ne某t=pD:p->ne某t=p->ne某t->ne某t参考答案:D[单选题]在双向循环链表中,在p指针所指的结点后插入一个指针q 所指向的新结点,修改指针的操作是:A:p->ne某t=q;q->prior=p;p->ne某t->prior=q;q->ne某t=q;B:q->prior=p;q->ne某t=p->ne某t;p->ne某t->prior=q;p->ne 某t=q;C:q->ne某t=p->ne某t;q->prior=p;p->ne某t=q;p->ne某t=q;D:p->ne某t=q;p->ne某t->prior=q;q->prior=p;q->ne某t=p->ne 某t;参考答案:B[多选题]抽象数据类型的组成部分分别为:A:数据对象B:存储结构C:数据关系D:基本操作参考答案:ACD[多选题]不具有线性结构的数据结构是:A:图B:栈C:广义表D:树参考答案:ACD[多选题]算法分析的两个主要方面是()A:正确性B:简单性C:空间复杂度D:时间复杂度参考答案:CD第二次作业[单选题]设一棵完全二叉树有300个结点,则共有个叶子结点A:150B:152C:154D:156参考答案:A[单选题]由3个结点所构成的二叉树有种形态.A:2B:3C:4D:5参考答案:D[单选题]设有两个串p和q,求q在p中首次出现的位置的运算称作:A:连接B:模式匹配C:求子串D:求串长参考答案:B[单选题]栈中元素的进出原则是:A:先进先出B:后进先出C:栈空则进D:栈满则出参考答案:B[单选题]链表是一种采用存储结构存储的线性表.A:顺序B:星式C:链式D:网状参考答案:C[单选题]数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为:A:存储结构B:顺序存储结构C:逻辑结构D:链式存储参考答案:B[判断题]链表的每个结点中都恰好包含一个指针参考答案:错误[判断题]如果将所有中国人按照生日来排序,则使用哈希排序算法最快参考答案:错误[填空题]1.数据的存储结构可用四种基本的存储方法表示,它们分别是().2.在具有n个元素的循环队列中,队满时具有个元素.3.广义表A=((a),a)的表头是()。

上海交大2012年数据结构上机考试题目

上海交大2012年数据结构上机考试题目

只允许用iostream 、fstream、cstdio运行时间1s 内存:32M1.Ordered FractionsConsider the set of all reduced fractions between 0 and 1 inclusive with denominators less than or equal to N.Here is the set when N = 5:0/1 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 1/1Write a program that, given an integer N between 1 and 160 inclusive, prints the fractions in order of increasing magnitude.PROGRAM NAME: frac.cppINPUT FORMATOne line with a single integer N.SAMPLE INPUT (file frac.in)5OUTPUT FORMATOne fraction per line, sorted in order of magnitude.SAMPLE OUTPUT (file frac.out)0/11/51/41/32/51/23/52/33/44/51/1给定N个整数集合(S[1],S[2],…,S[N])及M个集合操作,编写程序计算这些操作执行后N 个集合的值。

一个集合操作是一个三元组(k,x,y),其中k表示对集合S[x]和S[y]所进行的操作。

-当k=1时,更新S[x]的值为union(S[x],S[y])-当k=2时,更新S[x]的值为insersect(S[x],S[y])-当k=3时,更新S[x]的值为complement(S[x],S[y])对于两个集合A和B,我们如下定义三种运算:-union(A,B)中的元素可以在A中,或在B中,或同时在A和B中-intersect(A,B)中的元素既在A中也在B中-complement(A,B)中的元素在B中但不在A中程序文件名:set.cpp输入格式第1行是两个正整数N和M第2行到第N+1行定义了N个集合最初的值第i行(2<=i<=N+1)以一个非负整数c开始,接下来是c个互不相同的非负整数a[1],a[2],...,a[c],表示S[i]={a[1],a[2],...,a[c]}第N+2行到第M+N+1行定义了M个集合操作第j行(N+2<=j<=M+N+1)包含三个正整数k、x和y输入中所有整数都是小于1000,30%的测试数据中的整数都小于300样例输入(文件set.in)3 35 10 20 30 40 503 60 40 203 10 20 302 3 23 3 21 1 3输出格式输出N行,其中第i 行为集合S[i]的大小。

上海交通大学网络教育数据结构第一次作业

上海交通大学网络教育数据结构第一次作业

上海交通大学网络教育数据结构第一次作业开始时间 2021年04月3日星期三 16:14 状态完成完成于 2021年04月3日星期三 16:32 耗时 18 分钟 19 秒成绩 10/满分10 (100%) 题目1 正确获得1分中的1分标记题目题干数据结构中,与所使用的计算机无关的是数据的结构选择一项: a. 物理 b. 逻辑 c. 存储 d. 物理和存储题目2 正确获得1分中的1分标记题目题干顺序表中逻辑上相邻的结点的物理位置________ 选择一项: a. 不必相邻 b. 一定相邻c. 按某种规律排列d. 无要求题目3 正确获得1分中的1分标记题目题干算法分析的两个主要方面是________ 选择一项:a. 空间复杂性和时间复杂性b. 数据复杂性和程序复杂性c. 可读性和文档性d. 正确性和简明性题目4 正确获得1分中的1分标记题目题干数据在计算机存储器内表示时,物理地址与逻辑地址相同并且是连续的,称之为______ 选择一项: a. 链式存储结构 b. 顺序存储结构 c. 存储结构d. 逻辑结构题目5 正确获得1分中的1分标记题目题干链接存储的存储结构所占存储空间________ 选择一项:a. 分两部分,一部分存放结点值,另一部分存放表示结点间关系的指针b. 只有一部分,存放结点值c. 只有一部分,存储表示结点间关系的指针题目6 正确获得1分中的1分标记题目题干链表是一种采用________存储结构存储的线性表选择一项: a. 网状 b. 顺序 c.星式 d. 链式题目7 正确获得1分中的1分标记题目题干线性表若采用链式存储结构时,要求内存中可用存储单元的地址________ 选择一项:a. 连续或不连续都可以b. 部分地址必须是连续的c. 必须是连续的d. 一定是不连续的题目8 正确获得1分中的1分标记题目题干不带头结点的单链表head为空的判定条件是________ 选择一项:a. head->next=headb. head->next=NULLc. head!=NULLd. head=NULL题目9 正确获得1分中的1分标记题目题干在一个单链表中,已知q所指结点是p所指结点的前驱结点,若在q和p之间插入s 所指的结点,则执行________操作选择一项:a. q->next=s;s->next=p;b. p->next=s->next;s->next=p;c. p->next=s;s->next=q;d. s->next=p->next;p->next=s;题目10 正确获得1分中的1分标记题目题干在单链表中,若p所指结点不是尾结点,在p之后插入s所指结点的操作是________ 选择一项:a. s->next=p->next;p->next=s;b. s->next=p;p->next=s;c. s->next=p->next;p=s;d. p->next=s;s->next=p; 结束回顾感谢您的阅读,祝您生活愉快。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单项选择题
1.在线性表的下列存储结构中,读取元素花费的时间最少的是
A.单链表
B. 双向链表
C.循环链表
D.顺序表
说明:顺序表总从链表访问快,因为顺序表元素都是按顺序排列在一起的。

而链表的元素是分散的,要访问它的某一个元素,必须先访问它前面的元素。

2.顺序表是线性表的
A.链式存储结构
B. 顺序存储结构
C. 索引存储结构
D.散列存储结构
说明:顺序存储指在内存中是一个连续的整块,这是定义,没啥说的。

3. 以下关于线性表的说法不正确的是( )。

A、线性表中的数据元素可以是数字、字符、记录等不同类型。

B、线性表中包含的数据元素个数不是任意的。

C、线性表根据存储结构分可以有顺序表、链表、动态表
D、存在这样的线性表:表中各结点都没有直接前趋和直接后继
说明:A,我认为可以是任何类型(暂时没想出反例)
B,这句话不太好理解,估计原题的意思是为了说明:线性表是能得到确切的元素个数。

C,线性表只包括顺序表和链表。

而动态表,没听说过这种说法。

D,线性表为空,好像就符合题意。

4.在顺序表中,只要知道( ),就可在相同时间内求出任一结点的存储地址。

A) 基地址 B) 结点大小 C) 向量大小 D)基地址和结点大小
说明:这里任意结点是指给出这个结点的索引(index),则其地址为:base + index * sizeof(node),这里base为基地址,sizeof(node)为结点大小,假设index从0开始计数(C/C++都是从0开始,如果其它语言从1开始,只要将index-1代替index 就可以了)
5.在等概率情况下,顺序表的插入操作要移动( )结点。

A) 全部B) 一半 C) 三分之一 D) 四分之一
说明:插入和删除操作,平均约要移动全部元素的1/2,在P25,有推导公式,记住结果就行了。

6.在( )运算中,使用顺序表比链表好。

A) 插入 B) 删除C) 根据序号查找 D) 根据元素值查找
说明:插入、删除操作都是链表快。

根据元素值查找,都是要遍历每个元素,进行比对,直到找到为止,两者效率应该相等。

根据序号查找,也就是根据索引index,顺序表的访问时间为常量,比链表要快,这与第4题是同一个知识点。

7.在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( )。

A) O(1) B) O(n) C) O(n^2) D) O(log2n)
说明:插入前要遍历之前的每一个元素,直到找到位置为止,这个定位过程,都是O(n)
8.( )适合作为经常在首尾两端操作线性表的存储结构。

A) 顺序表 B) 单链表 C) 循环链表D) 双向链表
说明:常用操作无非包括插入、删除、读取三种方式。

顺序表的插入效率太低,不予考虑。

对于BCD三种链表(循环链表没说是双向的,我们这里只认为是普通方式,即单向循环)。

对首端的操作差不多。

但对尾端就不一样了。

比如要删除尾结点t ,则必须先找到它的前一个结点s。

前两者,只有遍历整个链表,才能找到s。

而在双向链表中,只要用s = t->prior就可以表示它的前一个结点了。

9.非空的循环单链表head的尾节点(由r所指向)满足
A) r->next=NULL B) r=NULL C) r->next=head D) r=head
说明:这是定义,最后一个结点的下一结点为头结点。

10.设线性表(a1,a2,a3···a n)按顺序存储,且每个元素占有m个存储单元,则元素a i的地址为
A LOC(a1) + i×m ,其中LOC(a1)表示元素a1的地址
B LOC(a1) + (i-1)×m,
C LOC(a1) + (i-2)×m
D 元素a i的地址无法计算
说明:见第4题,这里从1开始,所以要减去1
11.线性表若采用链式存储结构时,要求内存中可用存储单元的地址
A) 必须是连续的 B) 部分地址必须是连续的
C) 一定是不连续的D) 连续或不连续都可以
说明:其每个结点的地址,都是malloc()出来的,这是系统调用,可能连
续也可能不连续,不过一般情况下,都是不连续的。

12. 下列图1单链表执行R->data=P->next->data语句后,P->next->data值为:
A. 2
B. 5
C.7
D. 3
图1
说明:只是将P->next->data赋值给别人了,自己没变化。

13.在一个单链表中,若P所指结点不是最后结点,在P之后插入S所指结点,则执行:
A.S→next=P;P→next=S
B.S→next=P→next;P→next=S
C.S→next=P→next; P=S
D.P→next=S;S→next=P
说明:链表插入的标准操作。

要注意的是,这两步别写反了,否则链就断开
了。

14.单链表表示的整数数列如下: 值P→next→next->data为:
A. 19
B. 47
C. 64
D. 93
说明:P→next就是指向64那个结点,P→next→next就是指向93那个结点,其data自然就是93了
15. 在( )链表中,不能从任一结点出发访问到表中的所有结点的是:
A) 单链表 B) 单向循环链表 C) 双向循环链表 D) 循环链表
说明:循环链表和双链表都行,只有单链表不行。

16、在双向循环链表的*p结点之后插入*s结点的操作是:()
A)p->next=s; s->prior=p; p->next->prior=s; s->next=p->next
B)p->next=s; p->next->prior=s; s->prior=p; s->next=p->next
C)s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;
D)s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;。

相关文档
最新文档