顺序表基本操作实验报告c语言,实验报告(《数据结构》适用)实验一顺序表、单链表基本操作实现.doc...

实验报告(《数据结构》适用)实验一顺序表、单链表基本操作实现

肇庆学院 计算机学院/软件学院

实 验 报 告

专业 计算机科学与技术 班级 科技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

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值