数据结构上机程序.docx

上传人:b****6 文档编号:3040644 上传时间:2022-11-17 格式:DOCX 页数:73 大小:31.58KB
下载 相关 举报
数据结构上机程序.docx_第1页
第1页 / 共73页
数据结构上机程序.docx_第2页
第2页 / 共73页
数据结构上机程序.docx_第3页
第3页 / 共73页
数据结构上机程序.docx_第4页
第4页 / 共73页
数据结构上机程序.docx_第5页
第5页 / 共73页
点击查看更多>>
下载资源
资源描述

数据结构上机程序.docx

《数据结构上机程序.docx》由会员分享,可在线阅读,更多相关《数据结构上机程序.docx(73页珍藏版)》请在冰豆网上搜索。

数据结构上机程序.docx

数据结构上机程序

/*

作业要求:

试编写一算法,实现两个顺序表的合并。

(说明:

将共同拥有的元素只存其一。

缺点:

1.因为是第一次上机,没有顾及到良好的人际界面和程序流程。

2.并且没有将VC可输出中文的良好功能利用起来

3.试验了一下,发现在一个顺序表内不能输入相同的元素

心得:

重新熟悉了一下C语言,为以后的编程提供了基础

*/

#include

#include

#defineSeqListstructlisttype

#defineMaxSize1000

SeqList

{

intdata[MaxSize];

intlast;

};

voidfuzhi(SeqList*L)//用键盘连续输入顺序表的值

{

inta;

printf("inputnumber,'0'willexit\n");

scanf("%d",&a);

while((a!

=0)&&(L->last<999))

{

L->last++;

if(a!

=0)

L->data[L->last]=a;

scanf("%d",&a);

}

}

main()

{inti,j;

SeqList*a,*b,*c;

a=malloc(sizeof(SeqList));

a->last=-1;

b=malloc(sizeof(SeqList));

b->last=-1;

c=malloc(sizeof(SeqList));

c->last=-1;//对三个顺序表进行初始化

fuzhi(a);printf("OK\n");//试验了一下,发现在一个顺序表内不能输入相同的元素

fuzhi(b);printf("OK\n");//在两个顺序表之间却可以

for(i=0;i<=a->last;i++)

{

c->data[i]=a->data[i];

}

c->last=a->last;//将a顺序表的值先赋给c顺序表

for(i=0;i<=b->last;i++)

{

for(j=0;j<=c->last;j++)

{

if(b->data[i]==c->data[j])

break;//排除b顺序表与c顺序表中相同的元素

}

if(j>c->last){c->last++;c->data[c->last]=b->data[i];}

}//若查找发现没有相同,则添加入c顺序表

for(i=0;i<=c->last;i++)

{

printf("%d\t",c->data[i]);

}//输出c顺序表中的各个元素

printf("\n");

}

/*

作业内容:

线性表的定义、创建、插入和删除操作,并将数据元素显示出来

缺点:

本程序只能够用一遍,也就是说建立后就没法在此建立了

优点:

照顾到了程序结构的合理排布,并加入了良好的人机界面

心得:

此程序很简单,但是还是用上了结构体,是为了熟悉他的操作和应用

*/

#include

#include

#include

#include"iostream.h"

#include"ctype.h"

#include"fstream.h"

#include"iomanip.h"

#include

/***********结构体***********/

#defineSeqliststructlisttype

Seqlist

{

intdata[1000];//存储元素值

intlast;//元素个数

};

/*************函数声明***********/

chuangjian(Seqlist*);

insert(Seqlist*);

delet(Seqlist*);

display(Seqlist*);

search(Seqlist*);

/***********主函数************/

main()

{

Seqlist*L;chara;

L=malloc(sizeof(Seqlist));

L->last=-1;//初始化

while

(1)

{

printf("chuangjian=1\n");

printf("insert=2\n");

printf("delete=3\n");

printf("display=4\n");

printf("search=5\n");

scanf("%d",&a);//人机界面

switch(a)

{

case1:

chuangjian(L);break;

case2:

insert(L);break;

case3:

delet(L);break;

case4:

display(L);break;

case5:

search(L);break;

default:

printf("Fail\n");

}//调用各个函数

system("pause");//暂停

system("cls");//清屏

}

}

/***********创建函数************/

chuangjian(Seqlist*L)

{

inta;

if(L->last!

=-1)printf("yijianli\n");//判断是否已经有元素

else

{

printf("inputnumber,'-1'exit\n");

scanf("%d",&a);

while(a!

=-1&&L->last<=999)

{

L->last++;

L->data[L->last]=a;

printf("OK\n");

printf("inputnumber,'-1'exit\n");

scanf("%d",&a);

}//用键盘输入各个元素的值,当为-1时结束

}

printf("chuangjianchenggong\n");

};

/***********后插函数************/

insert(Seqlist*L)

{

inta;

if(L->last>999)

printf("biaoman");//判断线性表是否表满

else

{

printf("inputnumberwhichyouwanttoinsert\n");

scanf("%d",&a);

L->last++;

L->data[L->last]=a;

printf("charuchenggong\n");

}

}

/***********遍寻函数************/

search(Seqlist*L)

{

inta,i;

printf("inputnumberwhichyouwanttosearch\n");

scanf("%d",&a);//输入待寻找的元素

for(i=0;i<=L->last;i++)

{

if(a==L->data[i])

break;

}//依次对比

if(i>L->last)printf("meiyou\n");//没有找到

elseprintf("OK\nzaidi%dge",(i+1));

}

/***********删除函数************/

delet(Seqlist*L)

{

inta,i;

printf("inputnumberwhichyouwanttodelete\n");

scanf("%d",&a);//输入待删除的元素

for(i=0;i<=L->last;i++)

{

if(a==L->data[i])

break;

}//依次对比

if(i>L->last)printf("meiyou\n");//没有找到

else

{

printf("shanchuchenggong\n");

for(;ilast;i++)

L->data[i]=L->data[i+1];

L->last--;

}//删除该元素,并将线性表长度减一

}

/***********全显函数************/

display(Seqlist*L)

{

inti;

if(L->last==0)printf("kongbiao\n");

else

{

printf("Now,yixiajiweineirong\n");

for(i=0;i<=L->last;i++)

printf("%d\t",L->data[i]);

}//依次输入元素值

printf("\n");

}

/*

作业内容:

链表的定义、创建、插入和删除操作,将数据元素显示出来。

心得:

链表相对于线性表来说,不用担心空间大小的问题,更方便些

*/

#include

#include

#include

#include

/**********结构体声明***********/

#defineSLNODEstructnode

SLNODE

{

intdata;

SLNODE*next;

};

/*************函数声明***********/

chuangjian(SLNODE*);

insert(SLNODE*);

delet(SLNODE*);

display(SLNODE*);

search(SLNODE*);

/***********主函数************/

main()

{

SLNODE*L;chara;

L=malloc(sizeof(SLNODE));L->next=NULL;

while

(1)

{

printf("chuangjian=1\n");

printf("insert=2\n");

printf("delete=3\n");

printf("display=4\n");

printf("search=5\n");

scanf("%d",&a);//人机界面

switch(a)

{

case1:

chuangjian(L);break;

case2:

insert(L);break;

case3:

delet(L);break;

case4:

display(L);break;

case5:

search(L);break;

default:

printf("Fail\n");

}

system("pause");//暂停

system("cls");//清屏

}

}

/**********创建函数*************/

chuangjian(SLNODE*L)

{

inta;SLNODE*p,*q;

if(L->next!

=NULL)printf("yijianli\n");//判断是否建立

else

{

printf("

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1