数据结构编程求救

author author     2023-03-28     286

关键词:

实验一 线性表运算
一、实验目的
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、程序运行界面良好。

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

二、实验要求
1、实现串赋值、串比较、求串长、串联接以及求子串这5种基本操作。
2、能利用上述实现的基本操作完成置换Replace (&S, T, V)以及从串中删除一段子串StrDelete(&S,pos,len)的操作。
3、以上要求实现的操作不能直接使用C语言提供的函数(gets(),puts()除外)完成。
4、所写源代码编程风格良好,有详细注释。
5、程序运行界面良好,使用菜单实现每个基本操作。

试验一:

#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;
head=head->next;

list->num=num;
list->next=NULL;
l->next=list;



void DeleteList(List *head, int num)


List *l;
if(head->num==num)

l=head;
head=head->next;
::head=head;
delete l;
return ;


List *l1=head;
while(head)

if(head->next==NULL)
cout<<"找不到不要删除的数字."<<endl;
return ;


if(head->next->num==num)

l=head->next;
head->next=l->next;
delete l;
::head=l1;
cout<<"操作成功"<<endl;
return ;

head=head->next;


cout<<"找不到不要删除的数字."<<endl;


int GetListNum(List *head)

int num=0;
while(head)

num++;
head=head->next;


return num;


int main()

string str;

begin:
cout<<"1->增加链表 2->显示链表 3->插入节点 4->删除节点 5->节点数目"<<endl;
cin>>str;
if(str[0]==\'1\')

CreateList();

else if(str[0]==\'2\')

if(head==NULL)

cout<<"你的链表现在是空的,请增加链表"<<endl;
getchar();
getchar();
system("cls");
goto begin;

ShowList(head);

else if(str[0]==\'3\')

if(head==NULL)

cout<<"你的链表现在是空的,请增加链表"<<endl;
getchar();
getchar();
system("cls");
goto begin;

int num;
cout<<"请输入要插入的数字:"<<endl;
cin>>num;
InsertList(head,num);

else if(str[0]==\'4\')

if(head==NULL)

cout<<"你的链表现在是空的,请增加链表"<<endl;
getchar();
getchar();
system("cls");
goto begin;

int num;
cout<<"请输入要删除的数字:"<<endl;
cin>>num;
DeleteList(head,num);

else if(str[0]==\'5\')

cout<<"节点数是:"<<GetListNum(head)<<endl;

else

cout<<"输入错误,请重新输入.";

if(str[0]!=\'Q\' && str[0]!=\'q\')

cout<<endl<<endl;
getchar();
getchar();
system("cls");

goto begin;




试验二:
#include<iostream>
#include<string>
using namespace std;

struct Stack
char c;
Stack *pNext;
;

void InitStack(Stack *&s)

s=NULL;

char Peek(Stack *s)

if(s==NULL)
cout<<"栈是空的."<<endl;
return -1;

return s->c;

void Push(Stack *&s,Stack *newS)

newS->pNext=s;
s=newS;

char Pop(Stack *&s)

if(s==NULL)

cout<<"栈是空的."<<endl;
return -1;

Stack *pNext;
char c;
if(s)

pNext=s->pNext;
c=s->c;
delete s;
s=pNext;
return c;


int main()


Stack *s;
Stack *s1;
InitStack(s);
long num;
int m;
int k;
char c;
cout<<"输入一个数:"<<endl;
cin>>num;
cout<<"输入要转换的进制:"<<endl;
cin>>k;
while(num!=0)

m=num%k;
c=(int(\'0\')+m);
s1=new Stack;
s1->c=c;
Push(s,s1);
num/=k;

while(s)

cout<<Pop(s);

cout<<endl;
参考技术A 临近期末,要作业答案的越来越多了.

打开word提示“根据架构,xml数据无效”,求救!

论文修改中,就要毕业了,今天打开提示“根据架构,XML数据无效”,求救,请问哪位大神知道怎么恢复文档?初步怀疑与用公式编辑器有关。参考技术A可能是xml里面包含非法字符<和& 查看详情

谁能帮我做下这道c语言编程题,明天就要交了,好心人帮帮忙,谢谢了~~~~求救呀·~~~

用一个函数将10个职工参加计算机等级考试的信息存入结构体数组,每个人的信息包括:考号、姓名、性别、成绩。成绩分为优秀、合格、不合格三个等级。用函数实现输出每个职工的信息,用函数实现统计各个等级的人数。好... 查看详情

vs2013编程c++调试和生成老是出现问题,求救~~~

代码没有问题,windows8.16位4系统,F5出现第一个图(过期),之后出现第二个图(无法启动),新手求救TAT,急,在线等首先在VisualStudio里如果编译没过,那么这个提示就是正常的。因为此项目已经过期表示你改了某些文件或项... 查看详情

求救!c语言编程!统计100到999中个位,十位,百位都不相等的数!

题目:统计100到999中个位,十位,百位都不相等的数(比如345,123,而诸如999和199不是)#include <stdio.h>int main()    int i = 100, cnt=0, n[1000] = 0;    for( ; i<10... 查看详情

求救:ado可以连上sybase数据库吗?如可以选那个驱动程序?

参考技术A您好,这样的情况建议您下载最新版本的驱动精灵,或是直接在线升级一下驱动精灵。希望可以帮到您。 查看详情

求救!!!熟悉erp系统的进!!

请问各位朋友:我们公司用的ERP系统是vb+SQL开发的,听那些技术人员说更改功能时是要到数据库里面更改的,为什么不是在软件中更改的呢?请各位朋友指点一下吧,谢谢了.这个是私产或者功能不全的ERP造成的。一般来说,值更改软件... 查看详情

在linux系统系下vi操作中c语言编程,如何进行复制粘贴?求救!

怎么多行复制??是不是用鼠标选择????在非输入状态下,复制命令是YY(对着你要复制的内容连续按两下字母“Y”),粘帖是P。根据提问者补充:如果是多行复制的话,命令是数字+YY,比如:#vitest.crow1row2row3..........rown假... 查看详情

求救:gridview绑定数据时如何根据数据显示相应图片。。。

我用GRIDVIEW绑定数据,数据库中有一个字段是TutorAudit,只有两个值:已审核和未审核,当我绑定的时候,可不可以根据这两个值显示对应的两张图片,像这张图图片一样。。。简单点就是当TutorAudit=‘已审核’时,显示的是一个... 查看详情

oracle12c版本用数据泵导出的数据,要导入到11g版本中,应该怎么进行,不太会用数据泵,求救!!!

参考技术A在导出时加上要导入的数据库版本如:version=11.2.0.3.0 参考技术B在导出时加上要导入的数据库版本如:version=11.2.0.3.0 参考技术C低版本不兼容高版本,有可能导入不进去,impdb新建文件夹,具体自己百度 查看详情

ztree,,子节点显示不全,数据是从后台拿的。只有根节点显示全了,子节点都显示不全。怎么解决,求救。

刚刚忽然发现火狐下是没有这个问题的,谷歌浏览器会这样。如何解决??参考技术Aoverflow:auto; 查看详情

求救怎样使用ffmpeg函数接收rtsp网络数据

参考技术A下面是jni里的函数C/C++code?voidJava_com_Helloworld_HelloworldActivity_openFile(JNIEnv*env,jobjectthis,jstringfilename)intret;interr;inti;AVCodec*pCodec;uint8_t*buffer;intnumBytes;av_register_all();LOGE("Registeredformats");constchar*filestr;filestr=(*env)->GetStringU... 查看详情

求救!100分奉上,arcgis网络数据集的建立,我没有数据源,上哪去弄啊??

毕设要做基于Arcengine的最短路径分析,需要建立网络数据集,教科书上用的是:湖北省交通路网的网络数据集。可我上哪弄类似的数据啊??导师也不管。谁能告诉我上哪下载数据源呢,有数据的发到我邮箱也行:nouky1988@126.com... 查看详情

win8安装sql2008后,无法还原数据库,求救~~

还原对于服务器“LENOVO”失败。(Microsoft.SqlServer.SmoExtended)有关帮助信息,请单击:http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.0.1600.22+((SQL_PreRelease).080709-1414+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExce... 查看详情

java实现链表求救

创建一个初始为5个结点的单项链表,结点数据由用户输入。要求:(1)输出该链表;(2)分别在首尾增加一个数据值为100的结点,输出链表。提示:结点结构为:classNodeintdata;Nodenext;。假设输入数据为1,2,3,4,5;输出结果... 查看详情

系统崩溃后,关于mysql恢复数据库的问题!求救啊!

WIN2008系统崩溃了,MYSQL没有来得及备份最新数据,但是数据库是安装在D盘的,所有文件都在。重装系统后,对D盘原MYSQL目录进行重命名,然后全新安装MYSQL(版本一致,路径也一致),接着STOPMYSQL服务,最后复制原来的MYSQL目录... 查看详情

用ggplot2画箱线图叠加图层后变成一个很奇怪的样子,求救求救?

以下是代码:plot10<-ggplot(subjectivedata1_1,aes(x=factor(number),y=standardscore,fill=sex))+geom_boxplot()+scale_fill_discrete(name="sex")+labs(x="itemnumber",y="standardscore")+scale_color_discrete(name="sex")>plot10>plot10<-plot10+stat_box... 查看详情

asp中关键字问题求救!~

你看这句:sql="selectuserid,usernamefrom[users]orderbyuseriddesc里面的users加了括号!~说是因为他是关键字,但我看了很多asp的源文件,有时这些关键字又不需要加中括号,到底什么时候要中括号,什么时候不要?象这样的关键字到底... 查看详情

求救!!sql高手进!!!

请问各位朋友:在定义一个变量的值时:用set与select赋值有什么不同的呢?请各位朋友指点一下吧,谢谢了.set是更新数据库表的时候用的,select是查找数据库表的时候用的.如:Stringsql="updatetableneamsetid='"+ID+"',name='&... 查看详情