赞
踩
实验报告(《数据结构》适用)实验一顺序表、单链表基本操作实现
肇庆学院 计算机学院/软件学院
实 验 报 告
专业 计算机科学与技术 班级 科技1班 姓名 付治齐
学号 201324131151 课程名称 数据结构
学年2014—2015 学期 1? / 2□ 课程类别 专业必修? 限选□ 任选□ 实践□
评分: 批阅老师: 2014年 10月 30 日
实验一 顺序表、单链表基本操作的实现
实验目的
1、顺序表
(1)掌握线性表的基本运算。
(2)掌握顺序存储的概念,学会对顺序存储数据结构进行操作。
(3)加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力。
2、链表
(1)掌握链表的概念,学会对链表进行操作。
(2)加深对链式存储数据结构的理解,逐步培养解决实际问题的编程能力。
实验内容
1、顺序表
(1)编写线性表基础操作问题。
(2)调用上述函数实现基础的线性表操作。
(3)
……
2、链表
(1)编写链表基础操作函数。
(2)调用上述函数实现链表的基础操作。
(3)
……
实验结果
1、顺序表
(1)画出数据结构基本运算的流程图
(2)程序运行主要结果截图
(3)程序源代码
#include
#include
#include
struct LinearList
{
int *list;
int size;
int MaxSize;
};
typedef struct LinearList LIST;
void InitList(LIST *L,int ms)
{
if((L->list=(int*)malloc(ms *sizeof(int)))==NULL){
printf("内存申请错误!\n");
exit(1);
}
L->size=0;
L->MaxSize=ms;
}
int InsertList(LIST *L,int item,int rc)
{
int i;
if(L->size>=L->MaxSize)
return-1;
if(rc<0)
rc=0;
if(rc>L->size)
rc=L->size;
for(i=L->size-1;i>=rc;i--)
L->list[i+1]=L->list[i];
L->list[rc]=item;
L->size++;
return 0;
}
void OutputList(LIST *L)
{
int i;
for(i=0;isize;i++)
printf("%d ",L->list[i]);
printf("\n");
}
int FindList(LIST *L,int item)
{
int i;
for(i=0;isize;i++)
if(item==L->list[i])
return i;
return -1;
}
int DeleteList1(LIST *L,int item)
{
int i,n;
for(i=0;isize;i++)
if(item==L->list[i])
break;
if(isize){
for(n=i;nsize-1;n++)
L->list[n]=L->list[n+1];
L->size--;
return i;
}
return -1;
}
int DeleteList2(LIST *L,int rc)
{
int i,n;
if(rc<0||rc>=L->size)
return -1;
for(n=rc;nsize-1;n++)
L->list[n]=L->list[n+1];
L->size--;
return 0;
}
void main()
{
LIST LL;
int i,r;
printf("list addr=%p\tsize=%d\tMaxSize=%d\n",LL.list,LL.size,LL.MaxSize);
InitList(&LL,100);
printf("list addr=%p\tsize=%d\tMaxSize=%d\n",LL.list,LL.size,LL.MaxSize);
while(1)
{
printf("请输入元素值,输入0结束插入操作:");
fflush(stdin);
scanf("%d",&i);
if(i==0)
break
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。