数据结构实验报告-实验一 顺序表、单链表基本操作的实现

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

 

实验目的

1、顺序表

(1)掌握线性表的基本运算。

(2)掌握顺序存储的概念,学会对顺序存储数据结构进行操作。

(3)加深对顺序存储数据结构的理解,逐步培养解决实际问题的编程能力。

 

实验内容

1、 顺序表

1、编写线性表基本操作函数:

(1)InitList(LIST *L,int ms)初始化线性表;

(2)InsertList(LIST *L,int item,int rc)向线性表的指定位置插入元素;                         

(3)DeleteList1(LIST *L,int item)删除指定元素值的线性表记录;

(4)DeleteList2(LIST *L,int rc)删除指定位置的线性表记录;

(5)FindList(LIST *L,int item)查找线性表的元素;

(6)OutputList(LIST *L)输出线性表元素;

2、调用上述函数实现下列操作:

(1)初始化线性表;

(2)调用插入函数建立一个线性表;

(3)在线性表中寻找指定的元素;

(4)在线性表中删除指定值的元素;

(5)在线性表中删除指定位置的元素;

(6)遍历并输出线性表;

 

实验结果

1、顺序表

(1)流程图

 
   

 

 

 

 

(2)程序运行主要结果截图

 

 

 

 

 

 

(3)程序源代码

#include<stdio.h>

#include<stdlib.h>

#include<malloc.h>

struct LinearList/*定义线性表结构*/

{

    int *list;       /*存线性表元素*/

    int size;        /*存线性表长度*/

    int Maxsize;     /*存list数组元素的个数*/

};

typedef struct LinearList LIST;

void InitList(LIST *L,int ms)/*初始化线性表*/

{

    if((L->list=(int*)malloc(ms*sizeof(int)))==NULL)

       {

           printf("内存申请错误");

             exit(1);

       }

       L->size=0;

    L->Maxsize=ms;

}

int InsertList(LIST *L,int item,int rc)/*item记录值;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;i<L->size;i++)

        printf("%d",L->list[i]);

        printf("\n");

}

int FindList(LIST *L,int item)
  • 8
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值