太原理工数据结构实验报告完整版
数据结构课程设计实验报告完整版

数据结构课程设计实验报告完整版【正文】一、实验目的本实验主要目的是通过实践,掌握数据结构的基本概念、常见数据结构的实现方式以及在实际应用中的应用场景和效果。
二、实验背景数据结构是计算机科学与技术领域中的一个重要概念,是研究数据的组织方式、存储方式、访问方式以及操作等方面的方法论。
在计算机科学领域,数据结构是实现算法和解决问题的基础,因此对数据结构的理解和应用具有重要意义。
三、实验内容本次数据结构课程设计实验主要分为以下几个部分:1. 实验环境的准备:包括选择合适的开发平台、安装必要的软件和工具。
2. 实验数据的收集和处理:通过合适的方式收集实验所需的数据,并对数据进行处理和整理。
3. 数据结构的选择和实现:根据实验需求,选择合适的数据结构,并进行相应的数据结构实现。
4. 数据结构的测试和优化:对所实现的数据结构进行测试,包括性能测试和功能测试,并根据测试结果对数据结构进行优化和改进。
5. 实验报告的撰写:根据实验过程和结果,撰写完整的实验报告,包括实验目的、实验背景、实验内容、实验结果和结论等。
四、实验过程1. 实验环境的准备本实验选择了Visual Studio作为开发平台,安装了相应版本的Visual Studio,并根据官方指引进行了相应的配置和设置。
2. 实验数据的收集和处理本实验选取了一份包含学生信息的数据集,包括学生姓名、学号、性别、年龄等信息。
通过编写Python脚本,成功提取了所需信息,并对数据进行了清洗和整理。
3. 数据结构的选择和实现根据实验需求,我们选择了链表作为数据结构的实现方式。
链表是一种常见的动态数据结构,能够高效地插入和删除元素,适用于频繁插入和删除的场景。
在实现链表时,我们定义了一个节点结构,包含数据域和指针域。
通过指针的方式将节点连接起来,形成一个链式结构。
同时,我们还实现了相关的操作函数,包括插入、删除、查找等操作。
4. 数据结构的测试和优化在完成链表的实现后,我们对其进行了性能测试和功能测试。
太原理工数据结构实验报告四

实验报告四课程名称:数据结构实验名称:数据结构实验地点:计算机110机房专业班级:计科Z1501 学号:2015001909 学生姓名:刘元瑞指导教师:孟亮2016年12 月26日1.序实现下面运算:在二叉排序树中查找关键字为key的记录。
#include <stdio.h>#include <malloc.h>#include <Windows.h>//构造二叉排序树的结点typedef struct sort{int a; //关键字struct sort *L_node;//其左孩子struct sort *R_node;//其右孩子}Sort, *Sort_;Sort_ Structure();//接收用户输入的数据构造二叉排序树Sort_ Find(Sort_ BS_tree, int a);//查找部分void main(){int t;Sort_ Record;Sort_ BS_tree = Structure();//调用函数构造二叉排序树printf("请输入要查找的关键字!\n");scanf("%d", &t);if((Record = Find(BS_tree, t)))printf("所要找的记录为%d", Record->a);system("pause");}//接收用户输入的数据构造二叉排序树Sort_ Structure(){Sort_ BS_tree= (Sort_)malloc(sizeof(Sort));Sort_ p, s, q;int t;BS_tree->L_node = BS_tree->R_node = NULL;printf("请按照任意顺序输入二叉树的结点,输入0时结束!\n");scanf("%d",&t);if(t!=0){BS_tree->a = t;}scanf("%d", &t);while(t!=0){p = BS_tree;q = (Sort_)malloc(sizeof(Sort));q->a = t;q->L_node = q->R_node = NULL;//查找要插入部分if(t>p->a) s = p->R_node;else if(t<p->a) s = p->L_node;else s = NULL;while(s != NULL){p = s;if(t>p->a) s = p->R_node;else if(t<p->a) s = p->L_node;else s = NULL;}if(p->a != t){if(t > p->a) p->R_node = q;else p->L_node = q;}scanf("%d", &t);}return BS_tree;}//查找部分Sort_ Find(Sort_ BS_tree, int a){Sort_ s;Sort_ p = BS_tree;if(a>p->a) s = p->R_node;else if(a<p->a) s = p->L_node;else return p;while(s != NULL){p = s;if(a>p->a) s = p->R_node;else if(a<p->a) s = p->L_node;else return p;}printf("查找不成功!\n");return NULL;}2.试将折半查找的算法改写成递归算法。
太原理工大学 oracle 大型数据库实验报告

本科实验报告课程名称:大型数据库系统实验项目:创建数据库和表实验地点:多学科楼4506 专业班级:软件工程0901 学号:200 学生姓名:指导教师:2012年 4 月17 日一、实验目的和要求1.了解数据库的结构以及一些基本概念。
2.了解表的结构特点。
3.了解Oracle 11g的基本数据类型。
4.学会使用DBCA创建数据库。
5.学会使用界面方式创建表。
6.学会使用SQL语句手工创建数据库。
7.学会使用SQL语句创建表。
二、实验内容和原理1.能够创建数据库的用户必须是系统管理员,或是被授权使用CREATEDATABASE语句的用户。
2.创建数据库必须要确定数据库名、所有者(即创建数据库的用户)、数据库大小、SGA分配和存储数据库的文件。
3.确定数据库包含哪些表以及所包含的各表的结构,还要了解Oracle 11g的常用数据类型,以创建数据库的表。
4.创建企业管理的员工管理数据库YGGL,包含Employees(员工自然信息)表、Departments(部门信息)表和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,根据其提示逐步完成数据库的创建工作。
实际情况,我以创建表空间代替。
2.利用DBCA删除数据库(实际不操作)3.在OEM和利用sql语句分别创建表下面列出建表语句:/**创建Departments表*/create table Departments(department_id char(3),department_name varchar2(20) not null,note varchar2(100),constraint departments_pk primary key(department_id))tablespace yggl;/**创建Salary表*/create table Salary(employee_id char(6),income number(8, 2) not null,outcome number(8, 2) not null,constraint Salary_pk primary key(employee_id),constraint employee_id_foreign_keyforeign key(employee_id) references employees(employee_id))tablespace yggl;五、实验结果与分析创建表空间:以下为创建表,因为自己的命名习惯,对其中部分名称进行了修正,另外,一些数据的数据类型该用更合适的数据类型。
数据结构的实训报告结果

一、实训目的本次数据结构实训旨在通过实践操作,加深对数据结构理论知识的理解,提高解决实际问题的能力。
通过实训,使学生能够熟练掌握各种基本数据结构及其操作方法,并能够将这些知识应用于解决实际问题。
二、实训环境1. 操作系统:Windows 102. 编程语言:C语言3. 开发环境:Visual Studio 20194. 实训教材:《数据结构》(C语言版)三、实训内容本次实训主要内容包括线性表、栈、队列、树、图等基本数据结构的创建、操作和应用。
1. 线性表(1)单链表的创建、插入、删除和查找操作(2)双向链表的创建、插入、删除和查找操作(3)循环链表的创建、插入、删除和查找操作2. 栈(1)栈的创建、入栈、出栈和判断栈空操作(2)应用栈实现括号匹配3. 队列(1)队列的创建、入队、出队和判断队列空操作(2)应用队列实现广度优先搜索4. 树(1)二叉树的创建、插入、删除和遍历操作(2)二叉查找树的创建、插入、删除和查找操作5. 图(1)图的创建、添加边、删除边和遍历操作(2)图的深度优先遍历和广度优先遍历四、实训过程1. 线性表首先,我们学习了单链表、双向链表和循环链表的基本概念和创建方法。
通过编写代码,实现了链表的插入、删除和查找操作。
在实训过程中,我们遇到了一些问题,如链表插入操作时指针的移动、删除操作时避免内存泄漏等。
通过查阅资料和与同学讨论,我们逐步解决了这些问题。
2. 栈接着,我们学习了栈的基本概念和操作方法。
通过编写代码,实现了栈的创建、入栈、出栈和判断栈空操作。
在实训过程中,我们遇到了栈空和栈满的情况,通过设置标志位和循环队列的方法解决了这些问题。
此外,我们还学习了应用栈实现括号匹配,加深了对栈的应用理解。
3. 队列然后,我们学习了队列的基本概念和操作方法。
通过编写代码,实现了队列的创建、入队、出队和判断队列空操作。
在实训过程中,我们遇到了队列空和队列满的情况,通过设置标志位和循环队列的方法解决了这些问题。
太原理工大学-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(员工薪水情况)表。
各表的结构如下所示。
列名数据类型长度是否允许为空值说明EmployeeID Char 6 ×员工编号,主键Name Char 10 ×姓名Birthday Date ×出生日期Sex Number 1 ×性别Address Char 20 √地址Zip Char 6 √邮编PhoneNumber Char 12 √电话号码Department Char 3 ×员工部门号、外键列名数据类型长度是否允许为空值说明DepartmentID Char 3 ×部门编号、主键DepartmentName Char 20 ×部门号Note Varchar2 100 √备注列名数据类型长度是否允许为空值说明EmplyeeID Char 6 ×员工编号、主键InCome Number 8,2 ×收入OutCome Number 8,2 ×支出三、主要仪器设备Windows XP/7、oracle 10g/11g四、操作方法与实验步骤1.利用DBCA创建数据库1)数据库名称为YGGL,它的全局数据库名称为YGGL。
数据结构实验实训总结报告

一、实验背景随着计算机技术的飞速发展,数据结构作为计算机科学的重要基础,已经成为现代软件开发和数据处理的关键技术。
为了提高学生的数据结构应用能力,我们学校开设了数据结构实验实训课程。
本课程旨在通过实验实训,使学生深入理解数据结构的基本概念、性质、应用,掌握各种数据结构的实现方法,提高编程能力和解决实际问题的能力。
二、实验内容本次数据结构实验实训主要包括以下内容:1. 数据结构的基本概念和性质通过实验,使学生掌握线性表、栈、队列、串、树、图等基本数据结构的概念、性质和应用场景。
2. 数据结构的存储结构通过实验,使学生熟悉线性表、栈、队列、串、树、图等数据结构的顺序存储和链式存储方法,了解不同存储结构的优缺点。
3. 数据结构的操作算法通过实验,使学生掌握线性表、栈、队列、串、树、图等数据结构的插入、删除、查找、遍历等基本操作算法。
4. 数据结构的实际应用通过实验,使学生了解数据结构在各个领域的应用,如网络数据结构、数据库数据结构、人工智能数据结构等。
三、实验过程1. 实验准备在实验开始前,教师首先对实验内容进行讲解,使学生了解实验目的、实验步骤和实验要求。
同时,教师要求学生预习实验内容,熟悉相关理论知识。
2. 实验实施(1)线性表:通过实现线性表的顺序存储和链式存储,实现插入、删除、查找等操作。
(2)栈和队列:通过实现栈和队列的顺序存储和链式存储,实现入栈、出栈、入队、出队等操作。
(3)串:通过实现串的顺序存储和链式存储,实现串的插入、删除、查找等操作。
(4)树:通过实现二叉树、二叉搜索树、平衡二叉树等,实现树的插入、删除、查找、遍历等操作。
(5)图:通过实现图的邻接矩阵和邻接表存储,实现图的插入、删除、查找、遍历等操作。
3. 实验总结实验结束后,教师组织学生进行实验总结,总结实验过程中的收获和不足,提出改进措施。
四、实验成果通过本次数据结构实验实训,学生取得了以下成果:1. 掌握了数据结构的基本概念、性质和应用场景。
太原理工大学数据库实验报告

本科实验报告课程名称:数据库系统概论实验项目:交互式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 外码,插入数据时会提示违反外码约束。
太原理工大学 数据库系统概论 实验报告 数据的完整性

本科实验报告课程名称:数据库系统原理B 实验项目:数据的完整性实验地点:专业班级:学号:学生姓名:指导教师:201 年月日一目的与要求(1)了解SQL Serer数据库系统中数据完整性控制的基本方法(2)熟练掌握常用CREATE 或ALTER 在创建或修改表时设置约束(3)了解触发器的机制和使用(4)验证数据库系统数据完整性控制二实验设备与环境使用SQL Server数据库管理系统提供的SSMS和查询编辑器三实验内容、实验记录及实验结果与分析结合ST数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。
设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。
设计一些示例数据,验证完整性检查机制。
要求包括如下方面的内容:1.创建基本表及约束Student表Course表SC表如下图所示表创建成功:2.插入数据(1)插入学生信息到Student表(2).插入课程信息到Course表(3)插入到SC表(4)检查插入表中的数据二、检查完整性约束1.检查主键约束(1)INSERT INTO Student VALUES('','李斌','男',20,'CS','1001',0) INSERT INTO Student VALUES('','李斌','男',20,'CS','1001',0)UPDATE Student SET Sno='' WHERE Sname = '张立'无法正确运行因为:违反了PRIMARY KEY 约束'PK__Student__CA1FE4647F60ED59'。
不能在对象'dbo.Student' 中插入重复键。
太原理工数据库_实验报告

本科实验报告课程名称:数据库系统原理B实验项目:交互式SQL、数据完整性实验地点:专业班级:学号:学生姓名:指导教师:2015年 6 月 24 日检查数据是否被修改:检查数据是否删除:单表查询:查询学生基本信息,结果集属性名使用查询信息系且年龄大于23岁同学的学号汉字无结果查询年龄是17、18、20、23岁同学的查询年龄不在21~24岁之间的学生的姓名、学号、姓名、年龄和所在系系别和年龄分组统计:统计每个同学的学号、选课数、平均成绩统计每个班的每门课的选课人数、平均成绩连接查询:查询选修了2号课程的同学的学号和姓名查询各门课程的课程号、课程名称以及选课学生的学号查询选修了数据库系统原理课程的同学的学号六、实验结果与分析StudentCourse Sc比较使用视图查询和直接从基表查询的优点1.视图可以简化用户的操作视图机制使用户可以将注意力集中在所关心的数据上,而从基本表直接得来则显得复杂,定义了视图则可以简化查询操作。
2.视图使用户能以多种角度看待同一数据视图可以让用户从不同的方式看待同一数据,适当利用视图可以比基本表更清晰地表达。
3.视图对重构数据库提供了一定程度的逻辑独立性逻辑结构改变,不影响程序使用。
4.视图能够对机密数据提供安全保护视图可以让特定的用户查询特定的内容,把用户限制在数据不同的子集,保证安全性。
七、讨论、心得这个实验是对数据库基本操作的熟悉,花费了大量的时间去进行测试,有时候是出错不是因为代码错误,而是因为插入数据是不能一一对应,或是在连接时出现问题,与表的定义也有一定的关系。
总之编写的时候遇到不少问题,通过解决问题来熟悉了操作,更是要耐心的解决问题,有时候出错的问题非常简单,只要认真的检查一下代码就能发现,希望自己可以在编写代码时更加认真。
实验三:数据完整性一、实验目的(1)了解 SQL Serer数据库系统中数据完整性控制的基本方法(2)熟练掌握常用 CREATE 或 ALTER 在创建或修改表时设置约束(3)了解触发器的机制和使用(4)验证数据库系统数据完整性控制二、实验内容和要求结合 ST数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。
太原理工大学数据库实验报告

Sumc int check(sumc=0), --用户自定义约束,初值为0
Sdept char(2) not null) --非空约束
Create table sc
(sno char(6),
Cno char(3) not null, --非空约束
例如,像student表加一个入学时间列:
alter table Student add S_entrance datetime
alter table Student alter column Sage int
alter table Course add unique(Cname)
3.删除基本表
例如,删除已经建立的学生表:
Where sno = ‘200215129’
实验三数据库完整性
一、实验目的
(1)了解SQL Serer数据库系统中数据完整性控制的基本方法
(2)了解使用SSMS设置约束
(3)熟练掌握常用CREATE或ALTER在创建或修改表时设置约束
(4)了解触发器的机制和使用
(5)验证数据库系统数据完整性控制
二、实验平台
打开SQL SERVER配置管理器工具,单击“SQL SERVER2005服务”
节点,其中的“SQL SERVER”服务就是我们所说的数据库引擎。与SQL
SERVER 2000一样,可以通过这个配置管理器来启动、停止所安装的服
务,如“SQLSERVER(MSSQLSERVER)”。
3.了解RDBMS系统的体系结构。
where
Sname='刘晨');
查询选修了课程名为“信息系统”的学生学号和姓名.
数据结构实验报告_太原理工大学软件学院

}
int InserOrderList(SqList *L,int e){
int i;
if((L->length)>=(L->listsize)){
int *newbase;
newbase=(int *)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(int));
《数据结构》实验报告
专业:软件工程
班级:13XX班
姓名:X X X
2014年12月
太原理工大学学生实验报告
学院名称
软件学院
专业班级
软件13XX班
学号
201300XXXX
实验成绩
学生姓名
XXX
同组人姓名
实验日期
11.12
课程名称
数据结构
实验题目
实验一线性表
实验记录:
1.设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。
if(!newbase) exit(OVERFLOW);
L->elem=newbase;
L->listsize+=LISTINCREMENT;
}
q=&(L->elem[i-1]);
for(p=&(L->elem[L->length-1]);p>=q;--p)
*(p+1)=*p;
*q=e;
++L->length;
L->length++;
return OK;
}
void main(){
数据结构实验报告(实验)

数据结构实验报告(实验)数据结构实验报告(实验)1. 实验目的1.1 理解数据结构的基本概念和操作1.2 学会使用数据结构解决实际问题1.3 掌握常用数据结构的实现和应用2. 实验环境2.1 操作系统:Windows 102.2 编程语言:C++2.3 开发工具:Visual Studio3. 实验内容3.1 实验一:线性表的实现和应用3.1.1 设计并实现线性表的基本操作函数3.1.2 实现线性表的插入、删除、查找等功能 3.1.3 实现线性表的排序算法3.1.4 应用线性表解决实际问题3.2 实验二:栈和队列的实现和应用3.2.1 设计并实现栈的基本操作函数3.2.2 设计并实现队列的基本操作函数3.2.3 实现栈和队列的应用场景3.2.4 比较栈和队列的优缺点3.3 实验三:树的实现和应用3.3.1 设计并实现二叉树的基本操作函数3.3.2 实现二叉树的创建、遍历和查找等功能3.3.3 实现树的遍历算法(前序、中序、后序遍历)3.3.4 应用树解决实际问题4. 数据结构实验结果4.1 实验一的结果4.1.1 线性表的基本操作函数实现情况4.1.2 线性表的插入、删除、查找功能测试结果4.1.3 线性表的排序算法测试结果4.1.4 线性表解决实际问题的应用效果4.2 实验二的结果4.2.1 栈的基本操作函数实现情况4.2.2 队列的基本操作函数实现情况4.2.3 栈和队列的应用场景测试结果4.2.4 栈和队列优缺点的比较结果4.3 实验三的结果4.3.1 二叉树的基本操作函数实现情况4.3.2 二叉树的创建、遍历和查找功能测试结果 4.3.3 树的遍历算法测试结果4.3.4 树解决实际问题的应用效果5. 实验分析与总结5.1 实验问题与解决方案5.2 实验结果分析5.3 实验总结与心得体会6. 附件附件一:实验源代码附件二:实验数据7. 法律名词及注释7.1 版权:著作权法规定的对原创作品享有的权利7.2 专利:国家授予的在一定时间内对新型发明享有独占权利的证书7.3 商标:作为标识企业商品和服务来源的标志的名称、符号、图案等7.4 许可协议:指允许他人在一定条件下使用自己的知识产权的协议。
数据结构实习报告(共8篇)

数据结构实习报告(共8篇)数据结构实习报告(共8篇)第1篇:数据结构实_报告附件:实_报告格式,如下:数据结构实_报告班级:姓名:xxx(1514)xxx(1514)xxx(1514)指导教师:日期:题目一、问题描述(把你所选的题目及要求说一下)二、概要设计(抽象数据类型定义)三、详细设计(主要算法和函数间的调用关系)四、调试分析(调式过程中出现的问题及如何改正)五、心得体会(组内成员的分工及实_期间的体会)六、用户手册(系统的使用方法介绍)可参照_题集上的实_报告格式。
第2篇:数据结构实_报告数据结构实_报告班级:13软件二班姓名:殷健学号:1345536225子集和数问题1:问题描述子集和数问题1:子集和问题的为W,c。
其中,W=w1,w2,.,wn是一个正整数的集合,子集和数问题判定是否存在W的一个子集W1,使得W1=cW(02:问题分析程序中设计了函数voidputeSumofSub(ints,intk,intr),其意义是从第k项开始,如果s(已经决策的和数)和wk(当前元素)之和为和数,就把结果输出来,否则如果s与,wk,wk+1之和小于和数,则调用puteSumofsub(s+wk,k+1,r-wk),意为选择此结点的左分支,再判断s和后面所有元素之和是否不小于M(所有的加起来都小,必定无解),并且s+wk+1M,也是无解),若条件符合即调用puteSumofSub(s,k+1,r-wk),即选择当前结点的右分支。
算法展示:#includeusingnamespacestd;#include#include#defineM50claSu mOfSubprivate:intwM;intm;intxM;public:SumOfSub(inta,intb, intn)for(inti=0;i=mvoidmain()intsum=0;intwM;srand(unsigne d)time(NULL);for(inti=0;icoutcoutcoutm;sum=m*sum;cout复杂性分析:对于不同的输入结果,算法的执行次数有所不同,最好情况是n,最坏情况是n*2n。
太原理工大学数据库实验报告概要

本科实验报告课程名称:数据库系统概论实验项目:交互式SQL、数据完整性、用户鉴别与数据控制实验地点:致远楼B503专业班级:软件1229班学号:2012005829学生姓名:田亚鹏指导教师:李雪梅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 外码,插入数据时会提示违反外码约束。
计算数值实验报告(太原理工大学)

本科实验报告课程名称:计算数值方法实验地点:综合楼五层506室专业班级:计科1002 学号: 14学生姓名: xxx 指导教师:王峥2012 年 6 月 20太原理工大学学生实验报告2,)内有零点,反之在(a,(a+b)/2五、结构程序设计迭代法:#include<>#include<>main(){int i;double xn[15],y,x1,x2,m ;printf("请输入x1,x2的值:\n" );scanf("%lf%lf",&x1,&x2);printf("请输入精度要求:\n" );scanf("%lf",&m);printf(" n xn\n");i=0;do{xn[0]=(x1+x2)/2 ;xn[i+1]= sqrt(10/(4+xn[i]));⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡13814142210321321x x x ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎣⎡--⨯-2178.4617.5911212592.1121130.6291.51314.59103.0432115x x x x =⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡201161263841027851244321x x x x ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡----=⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡⎥⎥⎥⎥⎥⎥⎦⎤-555721121121121 n n x x x x追赶法:用来求对角方程组;将系数矩阵A 转化为A=L*U, L 为普通下n-1对角矩阵,U 为单位上n-1对角矩阵,然后通过程组l*y=b,u*x=y,来求解x.、主要仪器设备c++ C-free CodeBlocks、结构程序设计Gauss 消元法:#include <iostream>#include <cmath> using namespace std; int main() {int n,i,j,k;double a[100][100],b[100],o; cout<<"输入未知数个数:"<<endl; cin>>n;cout<<"输入数列:"<<endl; for (i=1;i<=n;i++)for (j=1;j<=n+1;j++) cin>>a[i][j]; for (i=1;i<=n;i++)for (j=i+1;j<=n;j++)if (fabs(a[j][i])>1e-7){o=a[i][i]/a[j][i];for (k=i;k<=n+1;k++)a[j][k]=a[j][k]*o-a[i][k];}for (i=n;i>0;i--){b[i]=a[i][n+1]/a[i][i];for (j=i-1;j>0;j--)a[j][n+1]=a[j][n+1]-b[i]*a[j][i];}cout<<"解得:"<<endl;for (i=1;i<=n;i++) cout<<b[i]<<endl;lf\n",i,d[i]);}、结果讨论和分析消元法:列主元素消元法:解法:追赶法:讨论从消元过程可以看出,对于n阶线性方程组,只要各步主元素不为零,经过n-1步消元,就可以得到一个等价的系数三角形阵的方程组,然后再利用回代过程可求得原方程组的解. 由于列主元素法相似且优于完全主元素法所以省略消元过程相当于分解 A为单位下三角阵L与上三角阵U的乘积,解方程组Ly=b回代过程就是解方程组Ux=y。
大学数据结构实验报告模板

大学数据结构实验报告模板一、实验目的数据结构实验是计算机相关专业课程中的重要实践环节,通过实验可以加深对数据结构理论知识的理解,提高编程能力和解决实际问题的能力。
本次实验的主要目的包括:1、掌握常见数据结构(如数组、链表、栈、队列、树、图等)的基本操作和实现方法。
2、学会运用数据结构解决实际问题,培养算法设计和分析能力。
3、提高程序设计的规范性和代码质量,培养良好的编程习惯。
4、熟悉编程语言(如C、C++、Java 等)的开发环境和调试技巧。
二、实验环境1、操作系统:_____2、编程语言:_____3、开发工具:_____三、实验内容(一)线性表的实现与操作1、顺序表的实现定义顺序表的数据结构。
实现顺序表的初始化、插入、删除、查找等基本操作。
2、链表的实现定义链表的数据结构(单链表、双向链表或循环链表)。
实现链表的创建、遍历、插入、删除等操作。
(二)栈和队列的实现与应用1、栈的实现定义栈的数据结构。
实现栈的入栈、出栈、栈顶元素获取等操作。
利用栈解决括号匹配、表达式求值等问题。
2、队列的实现定义队列的数据结构。
实现队列的入队、出队、队头元素获取等操作。
利用队列实现广度优先搜索、任务调度等应用。
(三)树的实现与遍历1、二叉树的实现定义二叉树的数据结构(二叉链表或顺序存储)。
实现二叉树的创建、前序遍历、中序遍历、后序遍历。
2、二叉搜索树的实现实现二叉搜索树的插入、删除、查找操作。
3、平衡二叉树(如 AVL 树)的实现(选做)理解平衡二叉树的平衡调整算法。
实现平衡二叉树的插入和删除操作,并保持树的平衡。
(四)图的表示与遍历1、图的邻接矩阵和邻接表表示定义图的数据结构(邻接矩阵或邻接表)。
实现图的创建和初始化。
2、图的深度优先遍历和广度优先遍历实现图的深度优先遍历和广度优先遍历算法。
应用图的遍历解决最短路径、连通性等问题。
(五)排序算法的实现与性能比较1、常见排序算法的实现实现冒泡排序、插入排序、选择排序、快速排序、归并排序等算法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验名称:线性表一.目的与要求本次实习的主要目的是为了使学生熟练掌握线性表的基本操作在顺序存储结构和链式存储结构上的实现,提高分析和解决问题的能力。
要求仔细阅读并理解下列例题,上机通过,并观察其结果,然后独立完成后面的实习题。
二.例题[问题描述]用链表形式存储一个字符串,插入、删除某个字符,最后按正序、逆序两种方式输出字符串。
[输入]初始字符串,插入位置,插入字符,删除字符。
[输出]已建立链表(字符串),插入字符后链表,删除字符后链表,逆转后链表。
[存储结构]采用链式存储结构[算法的基本思想]建立链表:当读入字符不是结束符时,给结点分配存储空间,写数据域,将新结点插到表尾;插入字符:根据读入的字符在链表中找插入位置,将新结点插入到该位置之前;删除字符:根据读入的删除字符在链表中找到被删结点后,将其从链表中删除;链表逆转:从链表的第一个结点开始对所有结点处理,将每个结点的前驱变为它的后继;打印链表:从链表的第一个结点开始,依次打印各个结点的数据域。
[参考源程序]#define NULL 0typedef struct node{char a;struct node *link;}node,*nodelink;void readlink(nodelink head){nodelink p,q;char c;p=head;printf("Input a linktable(a string):");scanf("%c",&c);if (c=='\n') printf("This string is empty。
");while(c!='\n'){q=(nodelink)malloc(sizeof(node));q->a=c;p->link=q;p=q;scanf("%c",&c);}p->link=NULL;}void writelink(nodelink head){nodelink q;if (head->link==NULL) printf(" This link is empty。
\n");for(q=head->link;q;q=q->link)printf("%c",q->a);printf("\n");}int insert(nodelink head,char k1,char k2){nodelink p,q;p=head->link;while(p->a!=k1&&p)p=p->link;if(p){q=(nodelink)malloc(sizeof(node));q->a=k2;q->link=p->link;p->link=q;return 1;}else {printf("There is no %c\n",k1);return 0;}}int delete(nodelink head,char k){nodelink p,q;q=head;p=head->link;while(((p->a)!=k)&&p){q=q->link;p=p->link;}if(p){q->link=p->link;return 1;}else{printf("There is no %c\n",k);return 0;}}void opside(nodelink head){nodelink p,q;p=head->link;while(p->link){q=p->link;p->link=q->link;q->link=head->link;head->link=q;}}main(){char k1,k2,k3;nodelink head;head=(nodelink)malloc(sizeof(node));head->link=NULL;readlink(head);if (head->link!=NULL){printf("Build link is :");writelink(head); }if (head->link!=NULL){printf("Please input a char you want to insert after:");k1=getch();printf("%c\n",k1);printf("Please input a char you want to insert:");k2=getch();printf("%c\n",k2);if (insert(head,k1,k2)) {printf("After %c insert %c,link is:",k1,k2);writelink(head);}printf("Please input a char you want to delete:");k3=getch();printf("%c\n",k3);if (delete(head,k3)){ printf("after delete %c,link is:",k3);writelink(head);}if (head->link!=NULL){printf("Opsite result is :");opside(head);writelink(head);free(head);}}}[运行情况]Input a linktable(a string):lopui↙Build link is :lopuiPlease input a char you want to insert after:p↙Please input a char you want to insert:y↙After p insert y,link is:lopyuiPlease input a char you want to delete:p↙after delete p,link is:loyuiOpsite result is :iuyol三.实习题1.设顺序表A中的数据元素递增有序,试写一程序,将x插入到顺序表的适当位置上,使该表仍然有序。
实验程序:#include"stdio.h"#include"malloc.h"#include"conio.h"typedef struct node{char a;struct node *link;}node,*nodelink;void readlink(nodelink head){nodelink p,q;char c;p=head;printf("请输入顺序表中的递增有序元素:");scanf_s("%c",&c);if(c=='\n') printf("顺序表为空\n\n");while(c!='\n'){q=(nodelink)malloc(sizeof(node));q->a=c;p->link=q;p=q;scanf_s("%c",&c);}p->link=0;}//构造顺序表int add(nodelink head){nodelink p;p=head;if(p->link==0) return 0;while(p->link!=0){if(p->a > p->link->a){printf("输入有误请重新输入\n\n");return 0;}p=p->link;}return 1;}//判断输入元素是否递增void insert(nodelink head,char x){ nodelink p,q,m;int i=0;p=head;q=(nodelink)malloc(sizeof(node));q->a=x;m=p;while(p->link!=0){if(p->a >= x){q->link=m->link;m->link=q;i=1;break;}m=p;p=p->link;}if(i==0){p->link=q;q->link=0;}}//插入元素void main(){loop:nodelink head;nodelink p;char x,z;head=(nodelink)malloc(sizeof(node));head->link=0;readlink(head);while(add(head)==0)readlink(head);printf("您输入的顺序表为:");for(p=head->link;p!=0;p=p->link)printf("%c",p->a);printf("\n请输入您要插入的字符:");x=getchar();insert(head,x);printf ("插入%c 后的顺序表为:",x );for (p =head ->link ;p !=0;p =p ->link )printf ("%c",p ->a );printf ("\n\n");scanf_s ("%c",&z );goto loop ;//goto 语句仅仅为了达到循环使用的目的 }2.用单链表ha 存储多项式A (x )=a 0+a 1x 1+a 2x 2+…+a n x n (其中a I 为非零系数),用单链表hb 存储多项式B (x )=b 0+b 1x 1+b 2x 2+…+b m x m (其中b j 为非零系数),要求计算C (x )= A (x )+B (x ),结果存到单链表hc 中。