数据结构表达式求值完整篇(含实验报告)
- 格式:docx
- 大小:69.10 KB
- 文档页数:11


数据结构实验
实验内容和目的:
掌握几种基本的数据结构:集合、线性结构、树形结构等在求解实际问题中的应用,以及培养书写规范文档的技巧。学习基本的查找和排序技术。让我们在实际上机中具有编制相当规模的程序的能力。养成一种良好的程序设计风格。
实验教材:
数据结构题集(C语言版) 清华大学出版社 2007年
实验项目:
实验一、栈和循环队列
㈠、实验内容:
① 栈
掌握栈的特点(先进后出FILO)及基本操作,如入栈、出栈等,栈的顺序存储结构和链式存储结构,以便在实际问题背景下灵活应用。本程序采用的是链栈结构,具有初始化一个栈、PUSH、POP、显示所有栈里的元素四个功能。
② 循环队列
掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,学会循环队列的实现,以便在实际问题背景下灵活运用。本程序具有初始化一个队列、入队、出队、显示队列的所有元素、队列长度五个功能。
㈡、实验代码
① 栈
程序代码:
#include
#include
#define Stack_Size 6
#define ERROR 0
#define OK 1
typedef int SElemType;
typedef struct SNode
{
SElemType data;
struct SNode *next; }SNode,*LinkStack;
int CreatTwo(LinkStack &head,int n)
{
int i;
SNode *p;
head=(LinkStack)malloc(sizeof(SNode));
head->next=NULL;
printf("请输入数据(数字):\n");
for(i=n;i>0;--i)
{
p=(SNode *)malloc(sizeof(SNode));
scanf("%d",&p->data);
p->next=head->next;
数据结构课程设计实验报告完整版
【正文】
一、实验目的
本实验主要目的是通过实践,掌握数据结构的基本概念、常见数据结构的实现方式以及在实际应用中的应用场景和效果。
二、实验背景
数据结构是计算机科学与技术领域中的一个重要概念,是研究数据的组织方式、存储方式、访问方式以及操作等方面的方法论。在计算机科学领域,数据结构是实现算法和解决问题的基础,因此对数据结构的理解和应用具有重要意义。
三、实验内容
本次数据结构课程设计实验主要分为以下几个部分:
1. 实验环境的准备:包括选择合适的开发平台、安装必要的软件和工具。
2. 实验数据的收集和处理:通过合适的方式收集实验所需的数据,并对数据进行处理和整理。
3. 数据结构的选择和实现:根据实验需求,选择合适的数据结构,并进行相应的数据结构实现。 4. 数据结构的测试和优化:对所实现的数据结构进行测试,包括性能测试和功能测试,并根据测试结果对数据结构进行优化和改进。
5. 实验报告的撰写:根据实验过程和结果,撰写完整的实验报告,包括实验目的、实验背景、实验内容、实验结果和结论等。
四、实验过程
1. 实验环境的准备
本实验选择了Visual Studio作为开发平台,安装了相应版本的Visual Studio,并根据官方指引进行了相应的配置和设置。
2. 实验数据的收集和处理
本实验选取了一份包含学生信息的数据集,包括学生姓名、学号、性别、年龄等信息。通过编写Python脚本,成功提取了所需信息,并对数据进行了清洗和整理。
3. 数据结构的选择和实现
根据实验需求,我们选择了链表作为数据结构的实现方式。链表是一种常见的动态数据结构,能够高效地插入和删除元素,适用于频繁插入和删除的场景。
在实现链表时,我们定义了一个节点结构,包含数据域和指针域。通过指针的方式将节点连接起来,形成一个链式结构。同时,我们还实现了相关的操作函数,包括插入、删除、查找等操作。
4. 数据结构的测试和优化 在完成链表的实现后,我们对其进行了性能测试和功能测试。性能测试主要针对链表的插入和删除操作,测试了不同规模数据的处理速度。功能测试主要测试链表的查找和修改功能,验证其正确性和可靠性。
百度文库 - 让每个人平等地提升自我
11 实验报告_实验2 数据类型与表达式(学生学号__姓名)
一、实验目的:
1、熟悉基本数据类型(int、char、float、double)占用的字节数和存储形式,能够定义基本数据类型的变量,使用这些类型的数据;
2、掌握字符数据的存储形式及其与整数的运算,能正确理解“字符数据”与“字符串”的区别与联系,熟悉常用转义字符的使用;
3、熟悉字符常量与一般常量的定义、使用;
4、掌握算术运算符(重点是/和%)、自增(++)和自减(--)运算符的使用,能够构建正确的表达式,并输出其结果;
5、理解不同类型数据之间运算时的类型转换规则,掌握强制类型转换的方法。
二、实验内容
1、(基础题)用sizeof运算符可以得到各种类型数据占用存储单元长度,利用数据间的关系和不同控制符,可以得到查看数据的存储形式。
回答下列问题:
(1) sizeof运算符如何使用?它的操作数可以是类型关键字吗?
答:可用sizeof(类型名或数据) 来获取该类型数据所占字节数。可以。
(2) 整数的占用长度与其数值大小有关吗?
答:有。
(3) 字符串中’\’’、’\n’、’\t’的功能各是什么?
答:单引号,换行,水平制表。
(4) 字符串的一个英文字母占几个字节?一个汉字占几个字节?尾部还有什么字符?
答:1个字节;4个字节;结束符‘\0’。
(5) 整数的存储形式是什么?
答:二进制补码。
百度文库 - 让每个人平等地提升自我
22 2、(基础题)字符数据以整数方式(ASCII)存储的,可以与整数进行+、-运算,既可以用“字符”方式输出,也可以用“整数”方式输出。
回答下列问题:
(1) 字符数据在内存中是以什么方式存储的?
答: ASCII码。
(2) 字符数据与整型数据能相互赋值、运算吗?如何以“整数”方式和“字符”方式输出字符?
答:能,整数:”%d”,字符:”%c”。
(3) 大小写字母的ASCII有什么关系?(如:’G’与’g’)
《数据结构》课程设计报告
文理学院计算机科学与技术学院 0902班 张云 1 第一章 链表的应用
线性表是数据结构中最简单、最常用的一种线性结构,也是学习数据结构全部内容的基础,其掌握的好坏直接影响着后继课程的学习。线性表的顺序存储结构,即顺序表的概念相对比较简单,因此,本章的主要任务是使用有关单链表的操作来实现通讯录信息系统的管理。
1.1设计要求
本章的设计实验要求使用有关链表的操作来实现通讯录信息系统的管理。为了验证算法,通讯录管理包括单通讯录链表的建立、通讯者的插入、通讯者的删除、通讯者的查询及通讯录表的输出等。主控菜单的设计要求使用数字0—5来选择菜单项,其他输入则不起作用。
程序运行后,给出6个菜单项的内容和输入提示:
1.通讯录链表的建立
2. 通讯者结点的插入
3. 通讯者结点的查询
4. 通讯者结点的删除
5. 通讯录链表的输出
0. 退出管理系统
请选择0—5:
1.2设计分析
1.2.1主控菜单函数设计分析
1.实现循环和功能选择
首先编写一个主控菜单驱动程序,输入0—5以进入相应选择项。假设输入选择用变量sn存储,它作为menu_select函数的返回值给switch语句。使用for循环实现重复选择,并在主函数main()中实现。
实际使用时,只有选择大于5或小于0的值,程序才能结束运行,这就要使用循环控制。这里使用for循环语句实现菜单的循环选择,为了结束程序的运行,使用了“return”语句,也可以使用“exit(0);”语句。
2.得到sn的合理值 《数据结构》课程设计报告
文理学院计算机科学与技术学院 0902班 张云 2 如前所述,应该设计一个函数用来输出提示信息和处理输入,这个函数应该返回一个数值sn,以便供给switch语句使用。假设函数名为menu_select,对于sn的输入值,在switch中case语句对应数字1—5,对于不符合要求的输入,提示输入错误并要求重新输入。将该函数与主函数合在一起,编译运行程序,即可检查并验证菜单选择是否正确。