太原理工数据结构

合集下载

(完整版)太原理工大学软件学院算法设计与分析复习题目及答案

(完整版)太原理工大学软件学院算法设计与分析复习题目及答案

一、选择题1、二分搜索算法是利用( A )实现的算法。

A、分治策略B、动态规划法C、贪心法D、回溯法2、下列不是动态规划算法基本步骤的是( A ).A、找出最优解的性质B、构造最优解C、算出最优解D、定义最优解3、最大效益优先是( A )的搜索方式。

A、分支界限法B、动态规划法C、贪心法D、回溯法4。

回溯法解旅行售货员问题时的解空间树是( B ).A、子集树B、排列树C、深度优先生成树D、广度优先生成树5.下列算法中通常以自底向上的方式求解最优解的是( B ).A、备忘录法B、动态规划法C、贪心法D、回溯法6、衡量一个算法好坏的标准是(C ).A 运行速度快B 占用空间少C 时间复杂度低D 代码短7、以下不可以使用分治法求解的是(D )。

A 棋盘覆盖问题B 选择问题C 归并排序D 0/1背包问题8. 实现循环赛日程表利用的算法是( A ).A、分治策略B、动态规划法C、贪心法D、回溯法9.下面不是分支界限法搜索方式的是( D ).A、广度优先B、最小耗费优先C、最大效益优先D、深度优先10.下列算法中通常以深度优先方式系统搜索问题解的是( D ).A、备忘录法B、动态规划法C、贪心法D、回溯法11。

备忘录方法是那种算法的变形。

( B )A、分治法B、动态规划法C、贪心法D、回溯法12.最长公共子序列算法利用的算法是( B ).A、分支界限法B、动态规划法C、贪心法D、回溯法13.实现棋盘覆盖算法利用的算法是( A ).A、分治法B、动态规划法C、贪心法D、回溯法14。

下面是贪心算法的基本要素的是( C )。

A、重叠子问题B、构造最优解C、贪心选择性质D、定义最优解15。

回溯法的效率不依赖于下列哪些因素( D )A. 满足显约束的值的个数 B。

计算约束函数的时间C。

计算限界函数的时间 D. 确定解空间的时间16。

下面哪种函数是回溯法中为避免无效搜索采取的策略( B )A.递归函数 B.剪枝函数 C.随机数函数 D.搜索函数17。

太原理工大学程序设计技术实验报告

太原理工大学程序设计技术实验报告
串,例如:“121”“abcba” “ABCCBA”。在主函数中输入字符串并输出判断结果。 5. 编写一个程序,由主函数和如下函数构成。
⑴设计函数:input(),输入 n 个无序的整数存储在一个数组中; ⑵设计函数:sort(),用起泡法对数组中的 n 各数据从大到小排序; ⑶设计函数:search(),用折半查找法在已排序的 n 个数种查找指定的数据,若存在, 返回其所处的位置,否则,将其插入适当位置使数据仍有序。 在主函数中调用上述函数,验证函数的功能。 6. 输入并运行第 6 章例 6-27 中的程序,根据输出结果总结局部静态变量的特点。
实验内容
1. 下载并安装 C,语言编译系统,设置编辑。
2. 输入并运行第 1 章例 1-1 和例 1-2 中程序,并记录遇到的问题和解决方法。
3. 输入并运行第 2 章例 2-2 和例 2-3 中程序,并记录遇到的问题和解决方法。
4. 求下面算术表达式的值(先自己分析,再试着用程序求解,比较得到的结果是否一致)。
课程名称:
本科实验报告
程序设计技术 B
实验地点:
明相校区软件学院机房 208
专业班级: 软件 1409 学号: 2014005763
学生姓名:
王璐
指导教师:
曹棣
实验名称
2014 年 12 月
实验一 C 语言的运行环境和运行过程
1
实验二 C 语言运算符和表达式
实验目的和要求
1. 学会安装 C 语言编译系统,如:Turbo C、Win-TC、Visual C++等; 2. 学会在上述某种编译系统中程序的编辑、编译、连接和运行; 3. 通过运行简单的 C 程序,初步了解 C 源程序的特点; 4. 理解 C 语言的数据类型,掌握各种常量的表示方法,变量的定义、初始化和赋值; 5. 学会使用 C 语言的算术运算符以及表达式的求值过程。

2022年太原理工大学数据科学与大数据技术专业《计算机组成原理》科目期末试卷B(有答案)

2022年太原理工大学数据科学与大数据技术专业《计算机组成原理》科目期末试卷B(有答案)

2022年太原理工大学数据科学与大数据技术专业《计算机组成原理》科目期末试卷B(有答案)一、选择题1、采用八体并行低位交叉存储器,设每个体的存储容量为32K×16位,存储周期为400ns,下述说法中正确的是()。

A.在400ns内,存储器可向CPU提供2位二进制信息B.在l00ns内,每个体可向CPU提供27位二进制信息C.在400ns内,存储器可向CPU提供2位二进制信息D.在100ns内,每个体可向CPU提供2位二进制信息2、在一个容量为l28KB的SRAM存储器芯片上,按字长32位编址,其地址范围可从0000H到()。

A.3HB.7HC.7HD.3fH3、一个浮点数N可以用下式表示:N=mr me,其中,e=rc g;m:尾数的值,包括尾数采用的码制和数制:e:阶码的值,一般采用移码或补码,整数;Tm:尾数的基;re:阶码的基;p:尾数长度,这里的p不是指尾数的:进制位数,当ra=16时,每4个二进制位表示一位尾数;q:阶码长度,由于阶码的基通常为2,因此,在一般情况下,q就是阶码部分的二进制位数。

研究浮点数表示方式的主要目的是用尽量短的字长(主要是阶码字长q和尾数字长的和)实现尽可能大的表述范围和尽可能高的表数精度。

根据这一目的,上述6个参数中只有3个参数是浮点数表示方式要研究的对象,它们是()。

A.m、e、rmB. rm、e、rmC.re、p、qD. rm、p、q4、下列为8位移码机器数[x]移,当求[-x]移时,()将会发生溢出。

A.11111111B.00000000C.10000000D.011l1l115、为了表示无符号十进制整数,下列哪些是合法的8421BCD码?()I.01111001 Ⅱ.11010110 Ⅲ.00001100 Ⅳ.1000010lA.I、IⅡB.Ⅱ、ⅢC.I、ⅣD.I、Ⅱ、Ⅲ6、一次总线事务中,主设备只需给出一个首地址,从设备就能从首地址开始的若干连续单元读出或写入多个数据。

太原理工大学软件工程教材简介

太原理工大学软件工程教材简介
建议教学过程中理论和实验相结合,各校可根据教学计划 安排,选择本教材的全部或部分进行教学,建议全部教学 的学时数为64(56+8)。
附录A UML图总结 附录B UML中定义的常用版型、约束和标记 附录C GOF给出的软件设计模式
建议学时 4
8
小结
本书共分成3篇,全面、详细地讲述软件工程的知识
– 第1篇按照生存周期模型详细阐述面向过程的软件工程; – 第2篇介绍面向对象软件工程的分析、设计和实现; – 第3篇则分别给出面向过程和面向对象软件工程的实验指导和案例。
建议学时 2 6
3
课程安排 (4)
周次
教学章节
9 第9章 面向对象方法学
第10章 面向对象的分 析 10
11 第11章 面向对象的软 件设计与实现
教学内容
9.1 面向对象方法概述 9.2 面向对象的软件工程 9.3 统一建模语言UML 9.4 统一软件开发过程RUP概述 9.5 本章小结和习题 10.1 面向对象的分析过程 10.2 建立用例模型 10.3 建立对象模型 10.4 建立动态行为模型 10.5 建立物理实现模型 10.6 面向对象软件开发过程的案例分析 10.7 本章小结和习题
本课程是一门实践性很强的课程,它是各种软件 开发经验的总结与提炼,学生不但应注重概念、原理、方 法、技术的掌握,也应注重方法、技术的实际应用。通过 本课程的学习,为全面掌握软件开发技术打下坚实的基础。
课程目标
通过本课程的学习,我们还可以了解并掌握:
1.软件工程的产生、软件生产发展史、软件生存周期、各种方法和生存周 期模型、软件工程面临的问题。 2.系统握软件开发最基本的内容:可行性研究和软件计划、需求分析、 概要设计、详细设计、编码、测试、维护,系统掌握这些阶段的目标、任 务、特点、步骤和文档。 3.掌握结构化方法的基本思想,开发过程和步骤,应遵循的原则和准则, 能够应用相应的图形表示工具开发小型软件项目。 4.掌握面向对象方法的基本思想、基本概念、基本模型,面向对象分析、 面向对象设计、面向对象实现的任务、内容和步骤,能够应用相应的图形 工具。 5. 了解软件工程发展中的新进展。

太原理工大学软件工程-第一章软件工程概述

太原理工大学软件工程-第一章软件工程概述
·软件工程关注于大型程序的构造。
4.第四代软件工程
90年代起,基于构件的开发方法取得了重要的进展,软件系统的开发可通过使用 现存的可复用构件组装完成,而无需从头构造,从而达到提高效率和质量、降低 成本的目的,称为构件工程。
1.2软件危机
1.2.1软件危机及其表现
软件危机的定义:软件危机是指在计算机软件的 开发和维护过程中所遇到的一系列严重问题及矛 盾。
3.软件工程时代: 70年代至今
20世纪60-70年代是计算机系统发展的第三阶段.为了克 服软件危机,1968年北大西洋公约组织的专家们在联邦 德国召开国际会议,在这次会上正式提出并使用了“软 件工程”这个名词。这阶段主要采用“工程化的生产方 式”。
软件过程提出至今,它的发展已经经历了4个阶段:
1.第一代软件工程(20世纪60年代到70年代)
3.第三代软件工程
随着规模的不断增大,开发人员的增多,开发时间相应持续增长,加上软件是知 识密集型的逻辑思维产品,这些都增加了软件工程的管理难度,人们在软件开发的 实践中认识到:提高软件生产率、保证软件质量的关键是“软件过程“的控制和管 理,提出了对软件项目管理的计划、组织、成本估算、质量保证、软件配置等技术 和策略,逐步形成了软件过程工程。
1.1.2软件 的发展
自从第一台计算机诞生以来,就开始了软件的生产,到目前为 止,软件发展经历了三个阶段:
1.程序设计时代:20世纪50-60年代,采用“个体生产方 式”,人们认为软件就是程序,没有相关的文档资料。
2.程序系统时代 :20世纪60-70年代是计算机系统发展 的第二阶段,出现了“软件作坊”,软件质量低下, 可靠性差,可维护性差,却价格昂贵,供不应求。在 该阶段的后期,于是出现了“软件危机”。

2022年太原理工大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年太原理工大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)

2022年太原理工大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、下述文件中适合于磁带存储的是()。

A.顺序文件B.索引文件C.哈希文件D.多关键字文件2、设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储, a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。

A.13B.33C.18D.403、若线性表最常用的操作是存取第i个元素及其前驱和后继元素的值,为节省时间应采用的存储方式()。

A.单链表B.双向链表C.单循环链表D.顺序表4、已知有向图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的拓扑序列是()。

A.V1,V3,V4,V6,V2,V5,V7B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V5,V2,V6,V7D.V1,V2,V5,V3,V4,V6,V75、向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()。

A.h->next=sB.s->next=hC.s->next=h;h->next=sD.s->next=h-next;h->next=s6、排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一趟排序。

下列排序方法中,每一趟排序结束时都至少能够确定一个元素最终位置的方法是()。

Ⅰ.简单选择排序Ⅱ.希尔排序Ⅲ.快速排序Ⅳ.堆排Ⅴ.二路归并排序A.仅Ⅰ、Ⅲ、Ⅳ B.仅Ⅰ、Ⅱ、Ⅲ C.仅Ⅱ、Ⅲ、Ⅳ D.仅Ⅲ、Ⅳ、Ⅴ7、下列叙述中,不符合m阶B树定义要求的是()。

太原理工大学数据库实验报告

太原理工大学数据库实验报告

本科实验报告课程名称:数据库系统概论实验项目:交互式SQL、数据完整性、用户鉴别与数据控制实验地点:致远楼B503专业班级:软件1229班学号:29学生姓名:***指导教师:***2014年3 月18 日一、实验目的和要求熟悉通过SQL 对数据库进行操作。

二、实验内容和原理1.在RDBMS 中建立一个学生-课程数据库,进行实验所要求的各种操作,所有的SQL 操作均在此建立的新库里进行。

2.根据以下要求认真进行实验,记录所有的实验用例及执行结果。

数据定义:基本表的创建、修改及删除;索引的创建和删除。

数据操作:完成各类查询操作(单表查询,连接查询,嵌套查询,集合查询);完成各类更新操作(插入数据,修改数据,删除数据)。

视图的操作:视图的定义(创建和删除),查询,更新(注意更新的条件)。

三、主要仪器设备操作系统:Windows 7。

数据库管理系统:SQL Server2008。

四、操作方法与实验步骤实验数据记录实验结果(一)数据定义:一.基本表的操作1.建立基本表1)创建学生表Student,由以下属性组成:学号Sno(char 型,长度为9,主码),姓名Sname(char 型,长度为20,唯一),性别Ssex(char 型,长度为2),年龄(smallint),所在系(char 型,长度为20)。

create table Student(Sno char(9) primary key,Sname char(20) unique,Ssex char(2),Sage smallint,Sdept char(20));2)创建课程表Course,由以下属性组成:课程号Cno(char 型,主码,长度为4),课程名Cname(char 型,长度为40),先行课Cpno(char型,长度为4,外码),学分Ccredit(smallint)。

create table Course(Cno char(4) primary key,Cname char(40),Cpno char(4),Ccredit smallint);若设置Cpno 外码,插入数据时会提示违反外码约束。

太原理工大学oracle大型数据库实验报告

太原理工大学oracle大型数据库实验报告

本科实验报告课程名称:大型数据库系统实验项目:创建数据库和表实验地点:多学科楼4506 专业班级:软件工程0901 学号:200 学生姓名:指导教师:2012年 4 月17 日一、实验目的和要求1.了解数据库的结构以及一些基本概念。

2.了解表的结构特点。

3.了解Oracle 11g的基本数据类型。

4.学会使用DBCA创建数据库。

5.学会使用界面方式创建表。

6.学会使用SQL语句手工创建数据库。

7.学会使用SQL语句创建表。

二、实验内容和原理1.能够创建数据库的用户必须是系统管理员,或是被授权使用CREATEDATABASE语句的用户。

2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小、SGA分配和存储数据库的文件。

3.确定数据库包含哪些表以及所包含的各表的结构,还要了解Oracle11g的常用数据类型,以创建数据库的表。

4.创建企业管理的员工管理数据库YGGL,包含Employees(员工自然信息)表、Departments(部门信息)表和Salary(员工薪水情况)表。

各表的结构如下所示。

表T1.1 Employees表结构表T1.2 Departments表结构表T1.3 Salary表结构三、主要仪器设备Windows XP/7、oracle 10g/11g四、操作方法与实验步骤1.利用DBCA创建数据库1)数据库名称为YGGL,它的全局数据库名称为YGGL。

2)控制文件三个,存放路径为……………………,名称分别为CONTROL01.CR、CONTROL02.CR和CONTROL03.CR。

3)重做日志文件三个,大小为100MB,存放路径为:………………,名称分别为redo01.log、redo02.log和redo03.log。

4)创建临时表空间temp01.dpf。

5)数字字符集为ZHS16GBK,国家字符集为AL16UTF16。

6)数据块大小为4KB。

进入DBCA,根据其提示逐步完成数据库的创建工作。

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

实验一线性表一.目的与要求本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。

要求仔细阅读并理解下列例题,上机通过,并观察其结果,然后独立完成后面的实习题。

二.例题问题描述:用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串。

输入:初始字符串,插入位置,插入字符,删除字符。

输出:已建立链表(字符串),插入字符后链表,删除字符后链表,逆转后链表。

存储结构:采用链式存储结构算法的基本思想:建立链表当读入字符不是结束符时,给结点分配存储空间,写数据域,将新结点插到表尾;插入字符:根据读入的字符在链表中找插入位置,将新结点插入到该位置之前;删除字符:根据读入的删除字符在链表中找到被删结点后,将其从链表中删除;链表逆转:从链表的第一个结点开始对所有结点处理,将每个结点的前驱变为它的后继;打印链表:从链表的第一个结点开始,依次打印各[运行情况]Input a linktable(a string):abcde↙Build link is :abcdePlease input a char you want to insert after:b↙Please input a char you want to insert:c↙After p insert y,link is:abccdePlease input a char you want to delete:e↙after delete p,link is:abccdOpsite result is :dccba如图显示:实习题:问题描述:设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。

输入:插入前的顺序表,插入的数,插入后的顺序表输出:插入前的顺序表,插入的数,插入后的顺序表存储结构:顺序表存储数据算法基本思想:其实这个题在学C语言时就已经写过了,这里采用顺序表来存储数据。

主要就是考虑插入的位置是不是在最后一个,如果不在最后一个,那么就要移动数据了,算法很简单就不再说了,这里的数据都看成是整型的。

源程序:#include<stdio.h>#include<stdlib.h>void Insert(int* p,int length,int n){int i,j;int flag=0;if(n>=p[length-1]){p[length]=n;flag=1;}else{for(i=length-2;i>=0;i--){if(n>=p[i]){for(j=length;j>=i+2;j--){p[j]=p[j-1]; }p[i+1]=n;flag=1;break;}}}if(flag==0){for(j=length;j>=1;j--){p[j]=p[j-1];}p[0]=n;}}int main(){int L[10]={2,5,8,11,14,17,20};int length=7;int i,x;printf("cha ru qian de shun xu biao wei :\n");for(i=0;i<length;i++){printf("%4d",L[i]);}printf("\nqing shu ru yao cha ru de zheng shu:\n");scanf("%d",&x);Insert(L,length,x);//插入xprintf("charu%dhoudeshunxubiaowei:\n",x);for(i=0;i<=length;i++){printf("%4d",L[i]);}printf("\n");system("pause");return 0;}运行情况:cha ru qian1 3 6 8 9 10 15cha ru de shu3cha ru hou1 3 3 6 8 9 10 15如图显示:程序的优缺点:本程序可以快速的做完实验的问题,并且看是简单很明了,插入的位置如果是最后一个,如果不在最后一个,那么就要移动数据了太原理工大学《数据结构》实验学院名称现代科技学院专业计算机班级07-2 实验成绩学生姓名张丁丁学号07100903 实验日期12.10 课程名称数据结构实验指导实验题目树实验室名称理工大学中区7层微机室指导教师签名:实验二树一.目的与要求熟悉树的各种表示方法和各种遍历方式,掌握有关算法的实现,了解树在计算机科学及其它工程技术中的应用。

二.例题[问题描述]任意给定一棵二叉树。

试设计一个程序,在计算机中构造该二叉树,并对它进行遍历。

[输入]一棵二叉树的结点若无子树,则可将其子树看作“.”,输入时,按照前序序列的顺序输入该结点的内容。

对下图,其输入序列为ABD..EH...CF.I..G..。

[输出]若为空二叉树,则输出:THIS IS A EMPTY BINARY TREE。

若二叉树不空,按后序序列输出,对上例,输出结果为:DHEBIFGCA。

[存储结构]采用二叉链表存储。

[算法的基本思想]采用递归方法建立和遍历二叉树。

首先建立二叉树的根结点,然后建立其左右子树,直到空子树为止。

后序遍历二叉树时,先遍历左子树,后遍历右子树,最后访问根结点。

运行情况:please input a tree:ABD..EH...CF.I..G..ABD..EH...CF.I..G..the result of post travese is:DHEBIFGCA如图显示:实习题问题描述:编写递归算法,计算二叉树中叶子结点的数目。

分析:这题主要是怎样计算叶子结点数目,其它的算法书上都有。

要注意叶子结点是指该结点既没有左孩子又没有右孩子,采用递归算法就很容易计算出其数目,详见源程序。

输入:按先序序列输入二叉树ABC..D..EF.G...输出:输出二叉树的个数为3存储结构:采用二叉链表存储。

源程序:}#include<stdio.h>#include<stdlib.h>#include<malloc.h>struct node{char info;struct node *llink,*rlink;};typedef struct node NODE;NODE *creat(){char x;NODE *p;scanf("%c",&x);printf("%c",x);if(x!='.'){p=(NODE*)malloc(sizeof(NODE));p->info=x;p->llink=creat();p->rlink=creat();}elsep=NULL;return p;}void countleaf(NODE*t,int &count){if(t){if((!t->llink)&&(!t->rlink))count++;countleaf(t->llink,count);countleaf(t->rlink,count);}}int main(){int e=0;NODE *T;printf("qing shu ru er cha shu ");T=creat();printf("\n");countleaf(T,e);printf("%d\n",e);system("PAUSE");}运行情况:an xian xu shu ru er cha shuABC..D..EF.G...chu ru er cha shu de ge shu 3如图显示:问题描述:编写递归算法,在二叉树中求位于先序序列中第K个位置的结点。

输入:按线序序列输入二叉树ABC..D..EF.G... 与K输出:按先序序列输出第K结点数C存储结构:采用二叉链表存储。

源程序:#include<stdio.h>#include<stdlib.h>#include<malloc.h>struct node{char info;struct node *llink,*rlink;};typedef struct node NODE;NODE *creat(){char x;NODE *p;scanf("%c",&x);printf("%c",x);if(x!='.'){p=(NODE*)malloc(sizeof(NODE));p->info=x;p->llink=creat();p->rlink=creat();}elsep=NULL;return p;}void run(NODE *t,int K){static int i=1;if(t){run(t->llink,K);run(t->rlink,K);if(i++==K)printf("%c",t->info);}}main(){NODE *T;int K;char e;printf("PLease input a tree:\n");T=creat();printf("\n");if(!T)printf("This is aempty binary tree.");else{printf("请输入序号");scanf("%d",&K);printf("The result of post travese is:\n");run(T,K);}printf("\n");system("PAUSE");}运行情况:an xian xu shu ru er cha shuABC..D..EF.G...shu ru K de zhi3xian xu xu lie di K jie dian shu C如图显示:程序优缺点:可以简单明了的运用,一目了然的看出。

但是必须要是先序序列输入才可以。

太原理工大学《数据结构》实验学院名称现代科技学院专业计算机班级07-2 实验成绩学生姓名张丁丁学号07100903 实验日期12.17 课程名称数据结构实验指导实验题目图实验室名称理工大学中区7层微机室指导教师签名:实验三图一.目的与要求熟悉图的存储结构,掌握有关算法的实现,了解图在计算机科学及其他工程技术中的应用。

相关文档
最新文档