C语言数据结构线性表的基本操作实验报告.doc 立即下载
2024-09-09
约1万字
约35页
0
3.6MB
举报 版权申诉
预览加载中,请您耐心等待几秒...

C语言数据结构线性表的基本操作实验报告.doc

C语言数据结构线性表的基本操作实验报告.doc

预览

免费试读已结束,剩余 30 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

/NUMPAGES35
实验一线性表的基本操作

一、实验目的与基本要求
1.掌握数据结构中的一些基本概念。数据、数据项、数据元素、数据类型和数据结构,以与它们之间的关系。
了解数据的逻辑结构和数据的存储结构之间的区别与联系;数据的运算与数据的逻辑结构的关系。
掌握顺序表和链表的基本操作:插入、删除、查找以与表的合并等运算。
掌握运用C语言上机调试线性表的基本方法。
二、实验条件
硬件:一台微机
软件:操作系统和C语言系统
三、实验方法
确定存储结构后,上机调试实现线性表的基本运算。
四、实验容
建立顺序表,基本操作包括:初始化,建立一个顺序存储的链表,输出顺序表,判断是否为空,取表中第i个元素,定位函数(返回第一个与x相等的元素位置),插入,删除。
建立单链表,基本操作包括:初始化,建立一个链式存储的链表,输出顺序表,判断是否为空,取表中第i个元素,定位函数(返回第一个与x相等的元素位置),插入,删除。
假设有两个按数据元素值非递减有序排列的线性表A和B,均以顺序表作为存储结构。编写算法将A表和B表归并成一个按元素值非递增有序(允许值一样)排列的线性表C。(可以利用将B中元素插入A中,或新建C表)
假设有两个按数据元素值非递减有序排列的线性表A和B,均以单链表作为存储结构。编写算法将A表和B表归并成一个按元素值递减有序(即非递增有序,允许值一样)排列的线性表C。
五、附源程序与算法程序流程图
1.源程序
(1)源程序(实验要求1和3)
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#defineLIST_INIT_SIZE100
#defineLISTINCREMENT10
typedefstructarr
{
	int*elem;
	intlength;
	intlistsize;
}Sqlist;

voidmenu();//菜单
voidInitList(Sqlist*p);					//创建线性表
voidShowList(Sqlist*p);					//输出顺序线性表
voidListDelete(Sqlist*p,inti,int&e);	//在顺序线性表中删除第i个元素,并用e返回其值
voidListInsert(Sqlist*p);					//在顺序线性表中第i个元素前插入新元素e
voidListEmpty(Sqlist*p);					//判断L是否为空表
voidGetList(Sqlist*p,inti,int&e);		//用e返回L中第i个数据元素的值
voidListInsert(Sqlist*p,inti,inte);
boolcompare(inta,intb);
voidLocateElem(Sqlist*L,inte);			//在顺序线性表L中查找第1个值与e满足compare()d元素的位序
voidMergeList_L(Sqlist*La,Sqlist*Lb);//归并

voidmain()
{
	SqlistLa;
	SqlistLb;
	intn,m,x;
	menu();
	scanf("%d",&n);
	while(n)
	{
		switch(n)
		{
		case0:;break;
		case1:
			InitList(&La);break;
		case2:
			ListEmpty(&La);break;
		case3:
			printf("请输入插入的位序:\n");
			scanf("%d",&m);
			printf("请出入要插入的数:\n");
			scanf("%d",&x);
			ListInsert(&La,m,x);break;
		case4:	
			printf("请输入删除元素的位序:\n");
			scanf("%d",&m);
			ListDelete(&La,m,x);
			printf("删除的元素为:%d\n",x);break;
		case5:
			printf("请输入要找的与线性表中相等的数:\n");
			scanf("%d",&m);
			LocateElem(&La,m);break;
		case6:
			printf("请输入查找的位序:\n");
			scanf("%d",&m);
			GetList(&La,m,x);
			printf("La中第%d个元素的值为%d\n",m,x);break;
		case7:
			ShowList(&La);break;
		case8:
			InitList(&Lb);break;
		case9:
			MergeList_L(&La,&
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

C语言数据结构线性表的基本操作实验报告

文档大小:3.6MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用