c语言链表上机实验答案,数据结构全部上机实验及答案.doc

线性表与链表实验
本文介绍了一项关于线性表和链表的数据结构实验,涵盖了顺序表和链表的基本操作实现,如创建、打印、查找、插入、删除等算法,并提供了具体的实验要求和步骤。

数据结构全部上机实验及答案

淮海工学院

数据结构实验指导书

计算机软件教研室

实验1线性表的抽象数据类型的实现

实验目的

1)掌握线性表的顺序存储结构和链式存储结构;

2)熟练掌握顺序表和链表基本算法的实现;

3)掌握利用线性表数据结构解决实际问题的方法和基本技巧;

4)按照实验题目要求独立正确地完成实验内容(编写、调试算法程序,提交程序清单及及相关实验数据与运行结果);

5)按时提交实验报告。

实验环境

计算机、C语言程序设计环境

实验学时

2学时,必做实验。

实验内容

一、顺序表的基本操作实现实验

要求:数据元素类型ElemType取整型int。按照顺序存储结构实现如下算法(各算法边界条件和返回结果适当给出):

1)创建任意整数线性表(即线性表的元素值随机在键盘上输入),长度限定在25之内;

2)打印(遍历)该线性表(依次打印出表中元素值);

3)在线性表中查找第i个元素,并返回其值;

4)在线性表中第i个元素之前插入一已知元素;

5)在线性表中删除第i个元素;

6)求线性表中所有元素值(整数)之和;

二、链表(带头结点)基本操作实验

要求:数据元素类型ElemType取字符型char。按照动态单循环链表结构实现如下算法(各算法边界条件适当给出):

1)创建任意字符型有序(递增排序)单循环链表(即链表的字符元素随机在键盘上输入),长度限定在15之内;

2)打印(遍历)该链表(依次打印出表中元素值);

3)在链表中查找第i个元素,i合法返回元素值,否则,返回FALSE;

4)在链表中查找与一已知字符相同的第一个结点,有则返回TRUE,否则,返回FALSE;

5)在链表中按照有序方式插入一已知字符元素;

6)在线性表中删除第i个结点;

7)计算链表的长度。

实验步骤

一、顺序表的源程序

#include

#include

#include

int list[25];int i,n,a,sum=0,k,l;

int eleminsert;

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

void initlist()

{

printf("Please input the total of the elems:");

scanf("%d",&n);

if(n>25||n<1) {printf("ERROE!");return;}

printf("Please input the elems:...\n");

for(i=0;i

{scanf("%d",&list[i]);

}

return;

}

/*------------------打印函数--------------*/

void Print(int list[],int n)

{

int j;

for(j=0;j

printf("%d\t",list[j]);

printf("\n");

return;

}

/*------------------查找函数------------*/

int Search(int list[],int n,int m)

{

if(m<1||m>n){printf("ERROR!\n"); return ;}

else printf("The elem is %d at %d place\n",list[m-1],m);

return;

}

/*----------------插入函数------------*/

void Insert(int list[],int n,int m,int elem)

{

int j;

if(m<1||m>n){printf("ERROR!\n"); return ;}

for(j=n-1;j>=m-1;i--)

{list[j+1]=list[j];}

list[m-1]=elem;

n=n+1;

printf("The new list are:" );

Print(list,n);

return;

}

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

void Delete(int list[],int n,int m)

{

int q;int j;

if(m<1||m>n)

{printf("ERROR!\n"); return ;}

j=list[m-1];

for(q=m-1;q<=n;q++)

{list[q]=list[q+1];}

printf("The new list are:");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值