当前位置:文档之家› 广东工业大学829数据结构2013--2020年考研真题汇编

广东工业大学829数据结构2013--2020年考研真题汇编

广东工业大学829数据结构2013--2020年考研真题汇编
广东工业大学829数据结构2013--2020年考研真题汇编

计算机数据结构考研真题及其答案

第1章绪论 一、选择题 1. 算法的计算量的大小称为计算的()。【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于()【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2)这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学 1999 一、1(2分)【武汉交通科技大学 1996 一、1( 4分)】 4.一个算法应该是()。【中山大学 1998 二、1(2分)】 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性D.A和C. 5. 下面关于算法说法错误的是()【南京理工大学 2000 一、1(1.5分)】 A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是()【南京理工大学 2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为()两大类。【武汉交通科技大学 1996 一、4(2分)】 A.动态结构、静态结构 B.顺序结构、链式结构

数据结构实验报告-动态查找表实验报告

数据结构实验报告题目:动态查找表 学院计算机 专业计算机科学与技术年级班别2009级 2 班 学号3109005935 学生姓名黄丽敏 指导教师吴伟民 成绩____________________ 2011年6月

一. 动态查找表: 抽象数据类型动态查找表的定义如下: ADT DynamicSearchTable { 数据对象D:D是具有相同特性的数据元素的集合。各个数据元素均含有类型相同,可唯一标识数据元素的关键字 数据关系R:数据元素同属一个集合。 基本操作P: InitDSTable(&DT); 操作结果:构造一个空的动态查找表DT。 DestroyDSTable(&DT) 初始条件:动态查找表DT存在。 操作结果:销毁动态查找表DT。 SearchDSTable(DT,key); 初始条件:动态查找表DT存在,key为和关键字类型相同的给定值。 操作结果:若DT中存在其关键字等于key的数据元素,则函数值为该元素的值或在表中的位置,否则为“空”。 InsertDSTable(&DT,e); 初始条件:动态查找表DT存在,e为待插入的数据元素。 操作结果:若DT中不存在其关键字等于e.key的数据元素,则插入e到DT。 DeleteDSTable(&DT,key); 初始条件:动态查找表DT存在,key为和关键字类型相同的给定值。 操作结果:若DT中存在其关键字等于key的数据元素,则删除之。 TraverseDSTable(DT,visit()); 初始条件:动态查找表DT存在,visit是对结点操作的应用函数。 操作结果:按某种次序对DT的每个结点调用函数visit()一次且至多一次,一旦visit()失败,则操作失败。 }ADT DynamicSearchTable 二. 存储结构定义: 公用头文件DS0.h和宏定义: #include /* EOF(=^Z或F6),NULL */ #include #define TRUE 1 #define FALSE 0 #define OK 1 #define N 10 /* 数据元素个数 */ typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */ typedef int KeyType; /* 设关键字域为整型 */ #define EQ(a,b) ((a)==(b)) #define LT(a,b) ((a)<(b))

2016最新广工anyview数据结构答案

【题目】若两棵二叉树T1和T2皆为空,或者皆不空且T1的左、右子树和T2的左、右子树分别相似,则称二叉树T1和T2相似。试编写算法,判别给定两棵二叉树是否相似。 二叉链表类型定义: typedef struct BiTNode { TElemType data; struct BiTNode *lchild, *rchild; } BiTNode, *BiTree; **********/ Status Similar(BiTree T1, BiTree T2) /* 判断两棵二叉树是否相似的递归算法*/ { if(!T1&&!T2)//同为空时,两树相似 return TRUE;

else if(T1&&T1){ if(Similar(T1 -> lchild,T2 -> lchild) && Similar(T1 -> rchild,T2 -> rchild)) //两树都不为空时,判断左右子树是否相似 return TRUE; else return FALSE; }else//以上两种情况都不符合,就直接返回FALSE return FALSE; } /********** 【题目】编写递归算法,求对二叉树T先序遍历时 第k个访问的结点的值。 二叉链表类型定义: typedef struct BiTNode {

TElemType data; struct BiTNode *lchild, *rchild; } BiTNode, *BiTree; **********/ TElemType PreOrder(BiTree T, int &k) { TElemType x='#'; if(T==NULL)return '#'; if(k==1)return T->data; if(T->lchild!=NULL) { k--; x=PreOrder(T->lchild,k); } if(T->rchild!=NULL&&x=='#')

2015广工操作系统实验报告(文档最后含源码下载地址)

操作系统实验报告 学生学院____ 计算机学院______ 专业班级13级计科9 学 号 学生姓名 指导教师 李敏 2015年12月29日

实验一进程调度实验 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。 二、实验内容和要求 设计一个有N个进程共行的进程调度程序。要求采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程),时间片轮转算法,多级反馈队列调度算法这三种算法。 每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。 进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。进程的到达时间为进程输入的时间。进程的运行时间以时间片为单位进行计算。 每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。 就绪进程获得CPU后都只能运行一个时间片。用已占用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进行检查。 重复以上过程,直到所要进程都完成为止。 三、实验主要仪器设备和材料 实验环境 硬件环境:IBM-PC或兼容机 软件环境:C++、C语言编程环境 四、实验方法 1、编写并调试一个模拟的进程调度程序,采用“最高优先数优先”调度算法对五个进程进行调度。 “最高优先数优先”调度算法的基本思想是把CPU分配给就绪队列中优先数最高的进程。 静态优先数是在创建进程时确定的,并在整个进程运行期间不再改变。 动态优先数是指进程的优先数在创建进程时可以给定一个初始值,并且可以按一定原则修改优先数。 例如:在进程获得一次CPU后就将其优先数减少1。或者,进程等待的时间超过某一时限时增加其优先数的值,等等。 2、编写并调试一个模拟的进程调度程序,采用“轮转法”调度算法对五个进程进行调度。轮转法可以是简单轮转法、可变时间片轮转法,或多队列轮转法。 简单轮转法的基本思想是:所有就绪进程按FCFS排成一个队列,总是把处理机分配给队首的进程,各进程占用CPU的时间片相同。如果运行进程用完它的时间片后还为完成,就把它送回到就绪队列的末尾,把处理机重新分配给队首的进程。直至所有的进程运行完毕。 3、多级反馈队列调度算法的基本思想是:

广工_操作系统_实验报告

操作系统实验报告 学院_____计算机学院_______ 专业______软件工程________ 班级______ ________ 学号_____ _______ 姓名_______ _________ 指导教师 (2010年10 月)

学号:姓名:协作者:________ 实验__一__题目__ 进程调度___第周星期___ 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。 二、实验内容和要求 编写并调试一个模拟的进程调度程序,采用“轮转法”调度算法对五个进程进行调度。 ·每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行的时间、已用CPU时间、进程状态等。 ·进程的优先数以及需要的运行时间事先由人为指定(也可以随机数产生)。 ·如果运行一个时间片后进程的已占用CPU时间已达到所需要的运行时间,则撤销该进程,如果还未达到,则把它送回队尾。 三、实验主要仪器设备和材料 实验环境 硬件环境:IBM-PC 或兼容机 软件环境:C语言编程环境 四、实验原理及设计方案 1、实验原理 将程序顺序的输入进程队列后,开始执行程序,当运行了一个时间片后,如果进程所占的CPU时间达到所需的运行时间时,该进程完成,并撤销该进程,否则则把进程送回队尾。 2、设计方案 用一个进程控制块(PCB)表示进程。输入进程名称,优先级,运行时间后,通过模拟系统对进程采用“轮转法”调度,得到各个时间片进程的运行情况。 3、相关数据结构的说明 struct pcb // 定义进程控制块 PCB {

数据结构-树的实现实验报告

数据结构设计性实验报告 课程名称_____ ____ 题目名称 学生学院 专业班级 学号 学生姓名 指导教师 2010 年 7 月 6 日

抽象数据类型:树的实现 一.需求分析 树形结构是一类重要的非线性数据结构,其中以树和二叉树最为常用,直观来看,树是以分支关系定义的内部结构。树的结构在客观世界广泛存在,如人类社会的族谱和各种社会组织机构都可以用树来形象表示。树在计算机领域中也得广泛应用,如在编译程序中,可用树来表示源程序的语法结构,又如在数据库系统中,树形结构也是信息的重要组织形式之一。 二.实验目的 对某个具体的抽象数据类型,运用课程所学的知识和方法,设计合理的数据结构,并在此基础上实现该抽象数据类型的全部基本操作。通过本设计性实验,检验所学知识和能力,发现学习中存在的问题。进而达到熟练地运用本课程中的基础知识及技术的目的。 三.实验环境 1、硬件:PC机 2、软件:Microsoft V isual C++ 6.0 四.设计说明 本程序采用树的二叉链表(孩子指针-兄弟指针-双亲指针)存储表示,以下是树的结构定义和基本操作: ADT Tree{ 数据对象D:D是具有相同特性的数据元素的集合。 数据关系R: 若D为空集,则称为空树; 若D仅含有一个数据元素,则R为空集,否则R={H},H是如下二元关系: (1) 在D中存在唯一的称为根的数据元素root,它在关系H下无前驱; (2) 若D-{root}≠NULL,则存在D-{root}的一个划分D1,D2,D3, …,Dm(m>0),对于任意j ≠k(1≤j,k≤m)有Dj∩Dk=NULL,且对任意的i(1≤i≤m),唯一存在数据元素xi∈Di有∈H; (3) 对应于D-{root}的划分,H-{,…,}有唯一的一个划分H1,H2,…,Hm(m>0),对任意j≠k(1≤j,k≤m)有Hj∩Hk=NULL,且对任意i(1≤i≤m),Hi是Di 上的二元关系,(Di,{Hi})是一棵符合本定义的树,称为根root的子树。 基本操作P: InitTree(&T); 操作结果:构造空树T。 DestroyTree(&T); 初始条件:树T存在。 操作结果:销毁树T。 CreateTree(&T,definition); 初始条件:definition给出树T的定义。 操作结果:按definition构造树T。 ClearTree(&T);

数据结构实验答案(1)

重庆文理学院软件工程学院实验报告册专业:_____软件工程__ _ 班级:_____软件工程2班__ _ 学号:_____201258014054 ___ 姓名:_____周贵宇___________ 课程名称:___ 数据结构 _ 指导教师:_____胡章平__________ 2013年 06 月 25 日

步骤#define ERROR 0 #define TRUE 1 #define FALSE 0 #define ElemType int #define MAXSIZE 100 /*此处的宏定义常量表示线性表可能达到的最大长度*/ typedef struct { ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/ int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/ }SeqList; #include "common.h" #include "seqlist.h" void px(SeqList *A,int j); void main() { SeqList *l; int p,q,r; int i; l=(SeqList*)malloc(sizeof(SeqList)); printf("请输入线性表的长度:"); scanf("%d",&r); l->last = r-1; printf("请输入线性表的各元素值:\n");

{ scanf("%d",&l->elem[i]); } px(l,i); printf("请输入要插入的值:\n"); scanf("%d",&l->elem[i]); i++; px(l,i); l->last++; for(i=0; i<=l->last; i++) { printf("%d ",l->elem[i]); } printf("\n"); } void px(SeqList *A,int j) { int i,temp,k; for(i=0;ielem[i]elem[k]) {temp=A->elem[i]; A->elem[i]=A->elem[k]; A->elem[k]=temp; }}

大数据结构考研真题及其问题详解

一、选择题 1. 算法的计算量的大小称为计算的( B )。【邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C )【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(C),它必须具备(B)这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【理工大学 1999 一、1(2分)【交通科技大学 1996 一、1( 4分)】 4.一个算法应该是( B )。【大学 1998 二、1(2分)】 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性D.A和C. 5. 下面关于算法说法错误的是( D )【理工大学 2000 一、1(1.5分)】 A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是( C )【理工大学 2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低4 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为( C )两大类。【交通科技大学 1996 一、4(2分)】 A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 8.以下与数据的存储结构无关的术语是( D )。【北方交通大学 2000 二、1(2分)】 A.循环队列 B. 链表 C. 哈希表 D.栈

广东工业大学 数据库 真题 附答案 (1)

广东工业大学试卷用纸,共 页,第 页 学 院 : 专 业: 学 号: 姓 名 : 装 订 线 广东工业大学考试试卷 ( ) 课程名称: 考试时间: 年 月 日 (第 周 星期 ) 题 号 一 二 三 四 五 六 七 八 九 十 总分 评卷得分 评卷签名 复核得分 复核签名 一、填空题(每题1分,共10分) 1、数据库领域中最常用的数据模型有 层次模型 、 网状模型 、 关系模型 和面向对象模型。 2、数据库设计包括需求分析、概念结构设计、 逻辑结构设计 、 物理结构设计 数据库实施、数据库运行和维护六个阶段。 3、事务的特性包括 原子性 、 持续性 、隔离性和一致性。 4、 并发调度的可串行性 是并发事务正确性的准则。 5、F 逻辑蕴涵的全体函数依赖构成的函数依赖的集合,称为F 的 闭包 。 6、数据是 描述事物的符号记录 。 二、选择题(每题2分,共20分) 1、 在数据库的三级模式结构中,描述数据库中全体数据的全局逻辑结构和特性的是_____。 A 、外模式 B 、内模式 C 、存储模式 D 、模式 2、 实体完整性是指关系中 ____。 A 、元组值不允许为空 B 、属性值不允许空 C 、主属性值不允许为空 D 、主码值不允许为空 3、数据库系统的逻辑独立性是指____。 A 、不会因为数据的变化而影响应用程序 B 、不会因为系统数据存储结构预数据逻辑结构的变化而影响应用程序 C 、不会因为存取策略的变化而影响存储结构 D 、不会因为某些存储结构的变化而影响其他的存储结构。 4、候选关键字中属性称为 。 A.非主属性 B.主属性 C.复合属性 D.关键属性

数据结构实验一 实验报告

班级:姓名:学号: 实验一线性表的基本操作 一、实验目的 1、掌握线性表的定义; 2、掌握线性表的基本操作,如建立、查找、插入和删除等。 二、实验内容 定义一个包含学生信息(学号,姓名,成绩)的顺序表和链表(二选一),使其具有如下功能: (1) 根据指定学生个数,逐个输入学生信息; (2) 逐个显示学生表中所有学生的相关信息; (3) 根据姓名进行查找,返回此学生的学号和成绩; (4) 根据指定的位置可返回相应的学生信息(学号,姓名,成绩); (5) 给定一个学生信息,插入到表中指定的位置; (6) 删除指定位置的学生记录; (7) 统计表中学生个数。 三、实验环境 Visual C++ 四、程序分析与实验结果 #include #include #include #include #define OK 1 #define ERROR 0 #define OVERFLOW -2

typedef int Status; // 定义函数返回值类型 typedef struct { char num[10]; // 学号 char name[20]; // 姓名 double grade; // 成绩 }student; typedef student ElemType; typedef struct LNode { ElemType data; // 数据域 struct LNode *next; //指针域 }LNode,*LinkList; Status InitList(LinkList &L) // 构造空链表L { L=(struct LNode*)malloc(sizeof(struct LNode)); L->next=NULL;

数据结构实验四五六

数据结构实验 实验四、图遍历的演示。 【实验学时】5学时 【实验目的】 (1)掌握图的基本存储方法。 (2)熟练掌握图的两种搜索路径的遍历方法。 【问题描述】 很多涉及图上操作的算法都是以图的遍历操作为基础的。试写一个程序,演示连通的无向图上,遍历全部结点的操作。 【基本要求】 以邻接多重表为存储结构,实现连通无向图的深度优先和广度优先遍历。以用户指定的结点为起点,分别输出每种遍历下的结点访问序列和相应生成树的边集。 【测试数据】 教科书图7.33。暂时忽略里程,起点为北京。 【实现提示】 设图的结点不超过30个,每个结点用一个编号表示(如果一个图有n个结点,则它们的编号分别为1,2,…,n)。通过输入图的全部边输入一个图,每个边为一个数对,可以对边的输入顺序作出某种限制。注意,生成树的边是有向边,端点顺序不能颠倒。 【选作内容】 (1)借助于栈类型(自己定义和实现),用非递归算法实现深度优先遍历。(2)以邻接表为存储结构,建立深度优先生成树和广度优先生成树,再按凹入表或树形打印生成树。 (3)正如习题7。8提示中分析的那样,图的路径遍历要比结点遍历具有更为广泛的应用。再写一个路径遍历算法,求出从北京到广州中途不过郑州的所有简单路径及其里程。 【源程序】 #include #include #include #define MAX_VERTEX_NUM 20 #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 #define TRUE 1 #define OK 1 #define FALSE 0 #define ERROR 0

哈尔滨工程大学-考研数据结构真题-12_

哈尔滨工程大学-考研数据结构真题-12_ 哈尔滨工程大学试卷考试科目: 数据结构A 卷题号一二三四五总分分数评卷人一、单项选择题(每空1分,共15分)1、以下数据结构中,从逻辑结构看,()和其他数据结构不同。 A.树B.字符串C.队列D.栈2、对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。 A.O(n) O(n) B.O(n) O(1) C.O(1) O(n) D.O(1) O(1) 3、有六个元素A,B,C,D,E,F的顺序进栈,()不是合法的出栈序列。 A.DEFCBA B.EDCBFA C.EFDBCA D.EDCFBA 4、字符串“ABCDEF”的子串有()个。 A.19 B.20 C.21 D.22 5、顺序表中插入一个元素,需要平均移动的元素个数为()。 A.(n-1)/2 B.n/2 C.(n+1)/2 D.n-1 6、非空的单循环链表head 的尾结点(由P所指向)满足()。 A.p-next ==NULL B.p==NULL C.p-next==head D.p==head 7、若A是中序线索二叉树中的一个结点,且A不为根,则A的前驱为( )。 A.A的右子树中最右的结点B.A的左子树中最左的结点C.A 的右子树中最左的结点D.A的左子树中最右的结点8、如某二叉树有30个叶子结点,有20个结点仅有一个孩子,则该二叉树中有两个孩子的结点数为()。 A.29 B.30 C.31 D.19 9、二维数组A的每个元素是由8个字符组成的串,其行下标i=0,1,…,9,列下标j=1,2,…,10。若A按行序为主序存储,元素A的起始地址与当A按列序为主序存储时的元素()的起始地址相同(设每个字符占一个字节)。 A.A B.A C.A D.A 10、图的深度优先遍历算法类似于二叉树的()。

广工操作系统实验2014 2015

操作系统实验报告 学生学院计算机学院 专业班级X级网络工程2班 学号 311X 学生姓名 X 指导教师 X 2013年12月26 日

计算机学院网络工程专业 2 班学号:X 姓名:X 协作者:________ 教师评定: 实验__一__题目_实验一进程调度 实验__二__题目_实验二作业调度 实验__三__题目_实验三储存管理空间的分配与回收模拟

计算机学院网络工程专业 2 班学号:31X6 姓名:X 协作者:________ 教师评定: 实验题目___实验一进程调度 一、实验目的 用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解。 二、实验原理 设计一个有N个进程并发的进程调度程序。要求采用最高级优先数优先算法。 每个进程有一个进程控制块PCB表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。进程的优先数以及需要的运行时间可以事先人为地指定。进程的到达时间为进程输入的时间。进程的运行时间以及时间片为单位进行计算。 每个进程的状态可以是未准备N(no ready)、就绪W(wait)、运行R(run)、完成F(finish)四种状态之一。 就绪进程获得CPU后就只能进行一个时间片。用已占用CPU时间加1来表示。 如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤销该进程,如果运行一个时间片后进程的已占用CPU时间还未到达所需要的运行时间,也就是进程还需要继续运行,此时,应将进程的优先数减1,然后把它插入就绪队列等待CPU。每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的PCB,以便进程检查。 重复以上过程,知道所有进程完成为止。 三、实验方法、步骤、方案 1、动态优先数时间片轮转法:采用时间片轮转法和动态优先数算法的混合思想:一开始给予任务赋予优先数,如果运行一个时间片后,进程的已占用CPU时间已达到所需要的运行时间,则撤销该进程,如果运行一个时间片后进程的已占用CPU时间还未到达所需要的运行时间,也就是进程还需要继续运行,此时,应将进程的优先数减1(即满足动态优先数),然后比较队列的优先数,并把该任务插入比该任务现在的优先数还大的进程的最前面。然后继续进行下一个时间片,直到所有进程完成为止。 2、开放式多级反馈队列调度算法:采用多级反馈队列调度算法。其基本思想是:当一个新进程进入内在后,首先将它放入第一个队列的末尾,按FCFS原则排队等待高度。当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚为完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,以此类推。开放式实现:允许完成一个时间片后插入进程,对该进程的插入方式是:插入第一队队列的末端。

数据结构课程设计实验报告

数据结构课程设计报告 一、设计题目:单词(词组)检索 现在有一个英文字典(每个单词都是由小写的'a'-'z'组成)单词量很大,达到100多万的单词,而且还有很多重复的单词。此外,我们现在还有一些Document,每个Document 包含一些英语单词。针对这个问题,请你选择合适的数据结构,组织这些数据,使时间复杂度和空间复杂度尽可能低,并且解决下面的问题和分析自己算法的时间复杂度。 1)基本型问题 (1)选择合适的数据结构,将所有的英文单词生成一个字典Dictionary。 (2)给定一个单词,判断这个单词是否在字典Dictionary中。如果在单词库中,输出这个单词总共出现的次数。否则输出NO。 2)扩展型问题 (3)给定一个单词,按字典序输出字典Dictionary 中所有以这个单词为前缀的单词。例如,如果字典T={a,aa, aaa, b, ba}, 如果你输入a,那么输出应该为{a, aa, aaa}。

(4)给定一个单词,输出在Dictionary 中以这个单词为前缀的单词的出现频率最高的10个单词,对于具有相同出现次数的情况,按照最近(即最后)插入的单词优先级比较高的原则输出。 (5)输出Dictionary中出现次数最高的10个单词。 3)高级型问题 (6)现在我们有一些Document,每个Document 由一些单词组成,现在的问题就是给你一个word,检索出哪些Document包含这个word,输出这些Document的DocumentID(就如同搜索引擎一样,即输入一些关键字,然后检索出和这些关键字相关的文档)。 (7)在第(6)问中,我们只考虑了一个word 在哪些Document 中的情况,我们进一步考虑2个相邻word的情况,检索出同时包含这两个相邻word的DocumentID。 4)挑战型问题 (8)现在我们再对(7)的问题进行扩展,把(7)中的只检索相邻2个word 推广到可以检索多个word(即连续的k个word,其中k>=2),检索出同时包含k个连续word 的DocumentID。 二、设计思路: 对于(1)问,题目要求选择适当的数据结构将一百二十多万个英文单词生成一个字典。我采用经典字典树结构进行构造,每个节点包括频度,时间,和后继二十六个指针。其中频度为单词的频度,若该字母为单词的最后一个字母,则该字母的pin为该单词的频度,否则

数据结构实验答案

重庆文理学院软件工程学院实验报告册 专业:_____软件工程__ _ 班级:_____软件工程2班__ _ 学号:_____2 ___ 姓名:_____周贵宇___________ 课程名称:___ 数据结构 _ 指导教师:_____胡章平__________ 2013年 06 月 25 日

{ ElemType elem[MAXSIZE]; /*线性表占用的数组空间*/ int last; /*记录线性表中最后一个元素在数组elem[ ]中的位置(下标值),空表置为-1*/ }SeqList; #include "common.h" #include "seqlist.h" void px(SeqList *A,int j); void main() { SeqList *l; int p,q,r; int i; l=(SeqList*)malloc(sizeof(SeqList)); printf("请输入线性表的长度:"); scanf("%d",&r); l->last = r-1; printf("请输入线性表的各元素值:\n"); for(i=0; i<=l->last; i++) { scanf("%d",&l->elem[i]); } px(l,i); printf("请输入要插入的值:\n");

scanf("%d",&l->elem[i]); i++; px(l,i); l->last++; for(i=0; i<=l->last; i++) { printf("%d ",l->elem[i]); } printf("\n"); } void px(SeqList *A,int j) { int i,temp,k; for(i=0;ielem[i]elem[k]) {temp=A->elem[i]; A->elem[i]=A->elem[k]; A->elem[k]=temp; }} } } 2. #include

2017年北京邮电大学数据结构考研题

2017年北京邮电大学数据结构考研题 一、选择 1、在数据结构中,与计算机无关的数据称为___________;单链表是一种______存储结构 的线性表,适合于______查找。 2、二叉树最常用的__________是二叉链表。 3、一棵二叉树的前序遍历是FCABED,中序遍历是ACBFED,则后序遍历是_________。 4、设树的度为5,其中度为1~5的结点数分别为6、 5、4、3、2个,则该树共有_______ 个叶子。 5、11个顶点的无向图,最多能有_______条边。 6、某索引顺序表共有元素275个,平均分成5块。若先对索引表采用顺序查找,再对块 中元素进行顺序查找,则等概率情况下,分块查找成功的平均查找长度是________。 7、交换排序适用于________存储结构的表。 8、由A~F六个字母构成的堆序列是______ (1) 9 (2) 28 (3) 31 (4) 36 (5) 50 (6) 51 (7) 55 (8) 110 (9) 138 (10) 逻辑结构(11) 存储结构(12) 顺序 (13) 链式(14) DBCAEF (15) ABCDEF (16) ABCEDF (17) BACDEF 二、判断 1、抽象数据类型与计算机内部表示和实现无关; 2、线性表的插入和删除总是伴随着大量数据的移动; 3、队列在程序调用是必不可少,因此递归离不开队列; 4、字符串’aababaaaba’的改进函数nextval数组值是0020200320; 5、二叉树中有双子女的父结点,在中序遍历中后继一定是其中一个子女结点; 6、不用递归就不能实现二叉树的前序遍历; 7、若有向图有n个顶点,则其强连通分量最多有n个; 8、平衡二叉树一定是一棵完全二叉树; 9、若某内部排序算法不稳定,则该算法没有使用价值; 10、倒排文件的目的是为了多关键字查找; 三、已知一组关键字为(112,213,305,46,57,86,72,162,95),用散列表函数H(k)=k%10将它们散列到表HT(0..9)中,用线性探测法H(k),H(k)+1,……,H(k)-1解决冲突,画出最后的散列表,并计算产生冲突的次数。 四、简述Prim和Kruskal算法求最小生成树的算法思想,分析他们的时间复杂度及分别适用于什么样的网 五、算法 1、阅读下面的程序,根据输入写出输出结果 #include “iostream.h” viod swap(int &x, int &y) {

广东工业大学期末考试试题及答案

广东工业大学考试试卷 ( A ) 课程名称:机械设计基础 考试时间:第21周星期二(05年1月18日) 班 级: 学 号: 姓 名: 一、填空题(共20分每空1分) 1. 某轴的截面受非对称循环变应力作用,已知其最大应力σmax =200 MP a ,最小应力σmin =100 MP a ,则其平均应力σm = 150 MP a ,应力幅σa = 50 MP a ,应力循环特性r= 0.5 。 2. 紧联接螺栓按拉伸强度计算时, 考虑到拉伸和扭转的复合作用, 应将拉伸载荷增大至原来___1.3___倍。 3. 普通平键的截面尺寸b ?h 是按 轴径 从标准中查取。 4. V 带传动由于有 弹性滑动 的影响,所以不可能有恒定的传动比。 5. 带传动、链传动、齿轮传动、蜗杆传动中,传动平稳性最好的 是 蜗杆传动 ,?附加动载荷最大的是 链传动 。 6. 带传动工作时,带中的最大应力发生在 紧边进入小轮 处。 7. 链节数一般应取 偶 数,链轮齿数应取 奇 数。 8. 一对直齿圆柱齿轮传动,其轮齿弯曲疲劳强度,主要取决 于 模数 。 9. 在齿轮弯曲强度计算中,对于标准直齿圆柱齿轮,齿形系数(Y F )仅决定 于 齿数 。 10.高速重载齿轮传动中,当散热条件不良时, 齿轮的主要失效形式 _________________________姓 名______________________学 号______________________班 级

是胶合。 11.在蜗杆传动中,失效主要发生在蜗杆和蜗轮中的蜗轮上。 12.蜗杆传动除了作强度计算外,还须作热平衡计算 13.非液体润滑的滑动轴承,其直径增加一倍、宽径比B/d不变,载荷不变,则轴承的平均压强变为原来的1/4 倍。 14.对于某一个轴承来说,正常的实际使用中,未达到额定寿命而提前发生疲劳点蚀的概率是 10% 。 15.按轴所受的载荷性质的不同,汽车变速箱至后桥的连接轴是传动轴;车床主轴是转轴。 二、简答题(共20分每题4分) 1. 螺栓联接(包括普通螺栓联接和铰制孔用螺栓联接)、双头螺柱联接和螺钉联接各自适用什么场合? 答: 普通螺栓联接:被联接件较薄,以承受轴向载荷为主; 铰制孔用螺栓联接:被联接件较薄,以承受横向载荷为主; 螺钉联接:一被联接件较厚,不需经常拆卸; 双头螺柱联接:一被联接件较厚,可经常拆卸; 2 有一由V带传动、链传动和齿轮传动组成的减速传动装置,试合理确定其传动布置顺序,并简要说明其原因。 答: 布置顺序:V带传动——齿轮传动——链传动。 V带传动在最高速级,过载时保护电机;齿轮传动在中间级过渡;链传动在最低速级,惯性力较小。 3 简述开式齿轮传动的设计准则。 答: 按轮齿弯曲疲劳强度设计,将模数放大20-30%考虑磨损对齿厚的影响。

《数据结构》实验指导书 广东工业大学信息工程学院

《数据结构》实验指导书 广东工业大学信息工程学院 下面介绍一下数据结构实验环境的启动,教材里的算法使用类C语言描述,具体实现需要支持ANSI C++标准的编译器。考虑到同学们的基础和使用习惯,我们利用Windows环境下的Visual C++来进行实验。 首先启动Visual C++,从开始——程序——Visual C++,启动好Visual C++界面如图1所示: 点击菜单“文件”出现下拉菜单,选择“新建”,如下图:

在上面的界面里,我们选择Win32 Console Application选项,并在工程栏目里输入一个文件名,位置根据自己的保存路径设置即可,确定后回车,出现如下界面:

再点击完成,出现下面的界面: 点击“OK”,出现如下界面:

在上面界面里,我们开始做实验时,只要通过“文件”菜单来添加源文件或头文件进入到程序编辑状态,如下图所示: 点击“OK”后进行程序编辑窗口,如下所示: 这时就可以编辑程序了。实验时将头文件(.h后缀文件)放在header files 里,而源文件(.cpp后缀文件)放在source files里进行编辑调试。

实验一:线性表的存储结构与顺序表的存储实现 实验内容:编写一个程序实现两个有序(从小到大)顺序表合并成为一个顺序表,合并后的结果放在第一个顺序表中。 实验目的:了解并掌握线性表的逻辑结构特性,通过实验掌握顺序存储结构的描述方法及用高级语言进行编程实现的方法。 实验步骤: 1.定义顺序表类型和结构: 首先要想好自己定义的顺序表叫什么名称,顺序表结构里包括有什么项目,每一项该是什么类型,如: typedefstruct{ ElemType *elem; int length; intlistsize; } SqList; 2.将定义好的顺序表初始化,如: Status InitList_Sq(SqList&L){ L.elem=(ElemType )malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem) exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; return OK; } 3.创建顺序表,如: void Create_Sq(SqList&L){ //创建顺序表 inti,n; printf("创建一个有序表:\n"); printf("输入有序表中元素的个数:"); scanf("%d",&n); L.length=n; for(i=0;i

广工2015数据结构复习题目及答案

数据结构 -C 语言版》 第一章 绪论 单项选择题 1.在数据结构中,数据的基本单位是 ________ 2.数据结构中数据元素之间的逻辑关系被称为 __ ___ 。 A. 数据的存储结构 B. 数据的基本操作 C. 程序的算法 3.在数据结构中,与所使用计算机无关的是数据的 ________ ___。 A. 存储结构 B. 逻辑和物理结构 C. 逻辑结构 4.在链式存储结构中,数据之间的关系是通过 _______ ___ 体现的。 A. 数据在内存的相对位置 B. 指示数据元素的指针 C. 数据的存储地址 D. 指针 5.计算算法的时间复杂度是属于一种 ______ ___。 A. 事前统计的方法 B. 事前分析估算的方法 C. 事后统计的方法 D. 事后分析估算的方法 6.在对算法的时间复杂度进行估计的时候,下列最佳的时间复杂度是 A. n 2 B. nlogn C. n D. logn 7. 设使用某算法对 n 个元素进行处理,所需的时间是 T(n)=100nlog 2n+200n+2000,则该算 A. 数据项 B. 数据类型 C. 数据元素 D. 数据变量 D. 数据的逻辑结构 D. 物理结构

法的渐近时间复杂度为_____ ___。 A. O(1) B. O(n) C. O(200n) D. O(nlog2n)

CDCBBDD 第二章线性表 单项选择题 1 ?链表不具有的特点是 ___________ 。 A.可随机访问任一元素 B.插入和删除时不需要移动元素 C.不必事先估计存储空间 D.所需空间与线性表的长度正比 2. 设顺序表的每个元素占 8个存储单元。第1个 单元的存储地址是 100,则第6个元素占 用的最后一个存储单元的地址为 ______________ 。 3 ?在线性链表存储结构下,插入操作算法 ________________ B. p_>next = p_>n ext; D. p = p->n ext; p->n ext = p->n ext- >n ext; 5 .将长度为n 的单链表接在长度为 m 的单链表之后的算法时间复杂度为 __________________ A. 0( n) B. 0(1) C. 0(m) D. 0(m+n) 6 ?需要预分较大空间,插入和删除不需要移动元素的线性表,其存储结构是 ________ A.单链表 B.静态链表 C.线性链表 D.顺序存储方式 ACCABB 填空题 1 ?在带表头结点的单链表中,当删除某一指定结点时,必须找到该结点的 ____ 结点。 2 ?在单链表中,指针 p 所指结点为最后一个结点的条件是 _____________ 。 3 ?将两个各有n 个元素的有序表归并成一个有序表,其最少的比较次数是 __________________ 4?在一个长度为n 的顺序表中第i 个元素(1 < i < n )之前插入一个元素时,需向后移动元 素的个数是 ___________________ 。 5.在长度为n 的顺序表中插入一个元素的时间复杂度为 _______________ A. 139 B. 140 C. 147 D. 148 A.需要判断是否表满 C.不需要判断表满 4 ?在一个单链表中,若删除 B. 需要判断是否表空 D.需要判断是否表空和表满 p 所指结点的后继结点,则执行 A. p->n ext = p->n ext- >n ext; C. p = p->n ext- >n ext;

相关主题
文本预览
相关文档 最新文档