数据结构编程求救

来源:百度知道 编辑:UC知道 时间:2024/06/09 08:03:05
实验一 线性表运算
一、实验目的
1、掌握线性表的结构特点。
2、掌握线性表的基本操作:初始化,插入,删除,查找,判空,求线性表长度等运算在顺序存储结构和链式存储结构上的实现。
3、通过本章实验帮助学生加深对C语言的使用(特别是函数的参数调用、指针类型的应用)。

二、实验要求
1、选择何时的存储方式实现线性表。其中,必须实现的线性表基本操作为:InitList、 ClearList、ListEmpty、ListLength、GetElem、PriorElem、ListInsert、ListDelete这8个基本操作,其余的可以选作。
2、所写源代码编程风格良好,有详细注释。
3、程序运行界面良好,使用菜单实现每个基本操作。
4、实验报告书写规范。

实验二 双向栈实现
一、实验目的
1、会定义顺序栈和链栈的结点类型。
2、掌握双向栈的结构特点及其在一维数组中的实现。
3、掌握在双向栈中进行插入和删除元素的方法。

二、实验要求
1、定义栈的存储结构。
2、编写程序实现双向栈的基本操作:1)初始化;2)判断栈是否为空;3)判断栈是否已满;4)入栈;5)出栈;6)清空栈;7)取栈顶元素。
3、所写源代码编程风格良好,有详细注释。
4、程序运行界面良好,使用菜单实现每个基本操作。

实验三 表达式求值
一、实验目的
1、掌握栈的特性,能利用栈的特性进行实际应用。
2、掌握“运算符优先法”,并能利用该算法对表达式求值。

二、实验要求
1、求一个表达式的值:输入一个包含“+”、“-”、“*”、“/”、正整数和圆括号的合法表达式,计算该表达方式的运算结果。
2、有能力的同学可以考虑操作数为负数的情况(如何分辨“-”为负号还是减法运算符)。
3、所写源代码编程风格良好,有详细注释。
4、程序运行界面良好。

实验四 串运算
一、实验目的
掌握串的基本处理操作和几种不同的存储结构(定长顺序存储表示、堆分配存储表示和

试验一:

#include<iostream>
#include<string>
using namespace std;

struct List
{
int num;
List *next;
};

List *head=NULL;

List* CreateList()
{
List *pL;
List *pEnd;

pL=new List;
head=pL;
pEnd=pL;
cout<<"请输入节点的数目,以 0 结束"<<endl;
cin>>pL->num;
while(pL->num!=0)
{
pEnd->next=pL;
pEnd=pL;
pL=new List;
cin>>pL->num;
}

delete pL;
pEnd->next=NULL;
return head;
}
void ShowList(List *head)
{
cout<<endl;
cout<<"链表节点如下:"<<endl;
while(head)
{
cout<<head->num<<endl;
head=head->next;
}
}
void InsertList(List *head,int num)
{

List *list =new List;
List *l;
while(head)
{
l=head;