顺序表的基本操作

这篇博客介绍了如何使用C语言实现顺序表的基本操作,包括初始化、查找、插入和删除等。通过示例代码展示了顺序表的结构和相关算法,帮助读者理解和掌握线性表的顺序存储结构。
摘要由CSDN通过智能技术生成

实验名称  顺序表的基本操作

一、实验目的:

1、复习C语言程序设计中的知识。

2、掌握线性表的顺序存储结构的表示和实现方法。

3、掌握顺序表基本操作的算法实现。

二、实验内容:

1.建立顺序表。

2.在顺序表上实现插入、删除和查找等操作。

三、实验要求:

编写实现顺序表的基本算法(初始化、查找、插入、删除等)的函数,并在此基础上设计一个主程序完成如下功能:

⑴初始化字符型顺序表L;

⑵建立顺序表L,如(a,b,c,d,c);

⑶输出顺序表L的长度;

⑷输出顺序表L的第i个元素,如第3个元素;

⑸输出给定元素的位置,如输出元素a的位置;

⑹在第i个元素前插入给定元素,如在第4个元素前插入元素f;

⑺删除顺序表L的第i个元素,如删除顺序表L的第3个元素。

四、实验步骤:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#define maxsize 1024

typedef int elemtype;

typedef struct sequlist

{

elemtype data[maxsize]; //定义顺序表为一维数组

int last; //last为最后一个数据元素的下标位置

}SequenList;

//1 初始化字符型顺序表L

SequenList * lnit_SequenList()

{

SequenList *L;

L = (SequenList
*)malloc(sizeof(SequenList));/申请分配内存空间/

if (L != NULL) /申请分配内存空间成功/

{

  L->last = -1;      /*顺序表为空*/

  printf("初始化成功!\n");

}

return L; //返回顺序表的首地址

}

/*2 建立顺序表L */

SequenList *indata_SeqList(SequenList *L)

{

elemtype x;

scanf("%d", &x);

while (x != 0)

{

  L->last += 1;

  L->data[L->last] = x;

  scanf("%d", &x);

}

printf(“顺序表建立成功!\n”);

return L;

}

/3 输出顺序表L的长度/

int SequenList_Length(SequenList *L)

{

return (L->last + 1);

}

/* 4 输出顺序表L的第i个元素*/

int input_SequenList(SequenList *L, elemtype key)

{

int i;

for (i = 0; i <= L->last;
i++)

{

  if (i + 1 == key)

  {

     printf("顺序表L的第i个元素为:%d\n", L->data[i]);

     //printf("%d",

L->data[i]);

     //return L->data[i];

  }

}

if (key<=0 || key>(L->last))

{

  printf("查找失败");

}

printf(“顺序表的所有元素为:\n”);

Print_SequenList(L);

return 0;

}

/* 5 输出给定元素的位置 */

int Search_SequenList(SequenList *L, elemtype pos)

{

int i;

for (i = 0; i <= L->last;
i++)

{

  if (L->data[i] == pos)

  {

     printf("给定元素的位置为%d:\n", i + 1);

     //return (i +1);

  }

// if
(pos!=L->data[i] && i = L->last)

  //{

// printf(“查找失败”);

// }

}

Print_SequenList(L);

/* i–;

if (i = L->last
&&(i+1)!=pos)

{

p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值