工学院 数据结构实验报告(3)

2019-03-22 09:00

数据结构实验报告

q->data=a.elem[k]; p->next=q; p=q;

p->next=NULL; k++; } return; }

void getList_Sq1(SqList a,LinkList b,SqList &c) {

int k=0,i=0;

while(b!=NULL||kb->data) {

c.elem[i++]=b->data; c.length=i-1; b=b->next; } else {

c.elem[i++]=a.elem[k++]; c.length=i-1; }

while(b!=NULL) {c.elem[i++]=b->data; b=b->next; c.length=i-1;} while(k

- 11 -

数据结构实验报告

c.elem[i++]=a.elem[k++]; k++; c.length=i-1; } return; } int display(SqList c) {

int i=0;

cout<

cout<

cout<

int displayc(LinkList b) {

cout<

cout<data<<\ \ b=b->next; }

cout<

int main(int argc, char *argv[])

- 12 -

数据结构实验报告

{

SqList a;

LNode *b=(LinkList)malloc(sizeof(LNode)); int n,m,l;

cout<<\请输入a中的数据个数\

cin>>n;

cout<<\请创建a中的数据\ create_sq(a,n); displaya(a);

cout<<\请输入b中的数据个数\

cin>>m;

cout<<\请创建b中的数据\ create_List(b,m); displayb(b->next);

cout<<\请选择你想C要用的存放类型:\

cout<<\数字1,类型为链式存取,数字2为顺序存储,其他错误\ cin>>l; if(l==1) {

LinkList c=(LinkList)malloc(sizeof(LNode)); getList_Sq(a,b->next,c); displayc(c->next); }

else if(l==2) {

SqList c;

getList_Sq1(a,b->next,c); display(c); }

else cout<<\输入错误\

- 13 -

数据结构实验报告

system(\ return EXIT_SUCCESS; } 五、

运行结果:

2 3 5 6 8 8 9 11 11 15 20 六、

分析与总结:

- 14 -

数据结构实验报告

1,顺序存储结构和链式存储结构有所不同,顺序存储结构是在一组连续的地址中进行存储,而链式存储结构则是通过NEXT域找到下一个元素,因此,在定义两种结构时应该区分开来。包括后面的DISPLAY显示函数也要区分开来。

2,在创建两种线性表时,也要注意使数据停止输入的条件.

3,顺序存储结构和链式存储结构不能直接合并,因为两种结构有所不同,所以在编写程序过程中,要把顺序存储结构转化链式存储结构,如果是这种转换方式就需要将C定义为链式存储结构,如果将链式存储结构转化为顺序存储结构,则需要将C定义为顺序存储结构。

4,这是数据结构第一个实验,也是我第一次入手编数据结构的程序。在此实验中,两输入的线性表必须得元素非递减排序,得出来的合并表才会是非递减的。其实这个程序还不完善,必须再加上排序。两种存储方法中,顺序存储结构所需空间开销更大,所以链式存储结构更合理。

- 15 -

数据结构实验报告

- 16 -


工学院 数据结构实验报告(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:最新(2012秋)人教版英语七年级上册讲义

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: