顺序表及其基本操作

顺序表及其基本操作

在这里插入图片描述
代码部分:

#include<stdio.h>
#include<stdlib.h>
#define OVERFLOW -2
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10

typedef int ElemType;
typedef int Status;
typedef struct
	{
   
		ElemType *elem;
		int length;
		int listsize;
	}SqList;


void mainmenu();									//主菜单
Status InitList_Sq(SqList &L);						//初始化
int putlist(SqList &L);								//填入数据
void DestroyList(SqList &L);						//销毁
void ListEmpty(SqList L);							//判断表空
Status ListLength(SqList L);						//测量表长
Status ListInsert_Sq(SqList &L,int i,ElemType e);	//插入
Status ListDelete_Sq(SqList &L,int i,ElemType &e);	//删除
int LocateElem_Sq(SqList L,ElemType e);				//查询
Status ClearList(SqList &L);						//清空
Status GetElem_Sq(SqList L,int i,ElemType &e);		//获取指定位置的元素
void PrintList_Sq(SqList L);						//输出

SqList L;

int main()
{
   
	while(1)
	{
   
		mainmenu();
	}
	return 0;
}

void mainmenu()								//主菜单
{
   
	
	int i,x,m1,m2,length;
	ElemType e;
	system("cls");
		printf("\n\t***************顺序表及其基本操作***************\n\n");
        printf("\n\t---------------[1]创建---------------");
		printf("\n\t---------------[2]销毁---------------");
		printf("\n\t---------------[3]判断表空---------------");
		printf("\n\t---------------[4]测量表长---------------"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
顺序表是一种线性结构,使用数组来实现,其基本操作包括初始化、插入、删除、查找、遍历等。下面是一个简单的顺序表及其基本操作的代码实现: ```c #define MAXSIZE 100 // 定义顺序表的最大长度 typedef struct { int data[MAXSIZE]; // 存储顺序表中的元素 int length; // 顺序表的当前长度 } SeqList; // 初始化顺序表 void InitList(SeqList *L) { L->length = 0; } // 插入元素 int InsertList(SeqList *L, int pos, int elem) { if (pos < 1 || pos > L->length + 1 || L->length == MAXSIZE) { return 0; // 插入位置不合法或顺序表已满,插入失败 } for (int i = L->length - 1; i >= pos - 1; i--) { L->data[i + 1] = L->data[i]; // 将插入位置后的元素依次向后移动一位 } L->data[pos - 1] = elem; // 在插入位置处插入元素 L->length++; // 顺序表长度加1 return 1; // 插入成功 } // 删除元素 int DeleteList(SeqList *L, int pos) { if (pos < 1 || pos > L->length) { return 0; // 删除位置不合法,删除失败 } for (int i = pos; i < L->length; i++) { L->data[i - 1] = L->data[i]; // 将删除位置后的元素依次向前移动一位 } L->length--; // 顺序表长度减1 return 1; // 删除成功 } // 查找元素 int SearchList(SeqList L, int elem) { for (int i = 0; i < L.length; i++) { if (L.data[i] == elem) { return i + 1; // 返回元素在顺序表中的位置 } } return 0; // 未找到元素,返回0 } // 遍历顺序表 void TraverseList(SeqList L) { for (int i = 0; i < L.length; i++) { printf("%d ", L.data[i]); } printf("\n"); } ``` 在上述代码中,`SeqList` 是顺序表的结构体类型,包含一个数组 `data` 用来存储元素,以及一个整型变量 `length` 表示顺序表的长度。其中,`InitList`、`InsertList`、`DeleteList`、`SearchList` 和 `TraverseList` 分别对应顺序表的初始化、插入、删除、查找和遍历操作

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值