顺序表基本功能

目录

1.顺序表类型定义

2.初始化顺序表

3.遍历输出顺序表内容

4.在指定位置插入

5.删除指定位置元素

6.查找指定元素值所在位置

7.完整代码


1.顺序表类型定义

typedef struct{
	int elem[MAXSIZE];
	int length;
}SqList;

2.初始化顺序表

void InitList(SqList &L){//初始化
	L.length=0;
	int x;
	for(;;){
		scanf("%d",&x);
		if(x==-1)
			break;
		L.elem[L.length]=x;
		L.length++;
	}
}

3.遍历输出顺序表内容

void PrintList(SqList L){//遍历输出
	printf("线性表内容:");
	for(int i=0;i<L.length;i++)
		printf("%4d",L.elem[i]);
	printf("\n");
	printf("线性表长度:%d\n",L.length);
}

4.在指定位置插入

bool InsertList(SqList &L,int a,int x){//插入 
	if(a<1||L.length==MAXSIZE||a>L.length+1)
		return false;
	for(int i=L.length-1;i>=a-1;i--)
		L.elem[i+1]=L.elem[i];
	L.elem[a-1]=x;
	L.length++;
	return true;
}

5.删除指定位置元素

bool DelList(SqList &L,int a){//删除 
	if(a<1||L.length==0||a>L.length)
		return false;
	printf("删除的元素是:%d\n",L.elem[a-1]);
	for(int i=a-1;i<L.length-1;i++)
		L.elem[i]=L.elem[i+1];
	L.length--;
	return true;
}

6.查找指定元素值所在位置

bool FindList(SqList L,int x){//按值查找 
	for(int i=0;i<L.length;i++){
		if(L.elem[i]==x)
			return true;
	}
	return false;
}

7.完整代码

#include <stdio.h>

#define MAXSIZE 50

typedef struct{
	int elem[MAXSIZE];
	int length;
}SqList;

void InitList(SqList &L){//初始化
	L.length=0;
	int x;
	for(;;){
		scanf("%d",&x);
		if(x==-1)
			break;
		L.elem[L.length]=x;
		L.length++;
	}
}

void PrintList(SqList L){//遍历输出
	printf("线性表内容:");
	for(int i=0;i<L.length;i++)
		printf("%4d",L.elem[i]);
	printf("\n");
	printf("线性表长度:%d\n",L.length);
}

bool InsertList(SqList &L,int a,int x){//插入 
	if(a<1||L.length==MAXSIZE||a>L.length+1)
		return false;
	for(int i=L.length-1;i>=a-1;i--)
		L.elem[i+1]=L.elem[i];
	L.elem[a-1]=x;
	L.length++;
	return true;
}

bool DelList(SqList &L,int a){//删除 
	if(a<1||L.length==0||a>L.length)
		return false;
	printf("删除的元素是:%d\n",L.elem[a-1]);
	for(int i=a-1;i<L.length-1;i++)
		L.elem[i]=L.elem[i+1];
	L.length--;
	return true;
}

bool FindList(SqList L,int x){//按值查找 
	for(int i=0;i<L.length;i++){
		if(L.elem[i]==x)
			return true;
	}
	return false;
}

int main(){
	SqList L;
	InitList(L);
	PrintList(L);
	InsertList(L,3,6);
	PrintList(L);
	DelList(L,2);
	PrintList(L);
	int x;
	scanf("%d",&x); 
	bool flag=FindList(L,x);
	if(flag)
		printf("找到值%d\n",x);
	else
		printf("查找失败\n");
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的实现顺序表基本功能C语言程序。该程序包括了顺序表的创建、插入、删除、查找和打印等功能。 ```c #include <stdio.h> #define MAXSIZE 100 // 定义顺序表的最大长度 typedef struct { int data[MAXSIZE]; // 顺序表的存储空间 int length; // 顺序表的当前长度 } SqList; // 初始化顺序表 void InitList(SqList *L) { L->length = 0; } // 插入元素 int ListInsert(SqList *L, int pos, int elem) { if (pos < 1 || pos > L->length + 1 || L->length == MAXSIZE) { return 0; // 插入位置不合法或顺序表已满,插入失败 } for (int i = L->length; i >= pos; i--) { L->data[i] = L->data[i - 1]; // 将pos及之后的元素向后移动一位 } L->data[pos - 1] = elem; // 在pos处插入新元素 L->length++; // 顺序表长度加1 return 1; // 插入成功 } // 删除元素 int ListDelete(SqList *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]; // 将pos之后的元素向前移动一位 } L->length--; // 顺序表长度减1 return 1; // 删除成功 } // 查找元素 int ListSearch(SqList *L, int elem) { for (int i = 0; i < L->length; i++) { if (L->data[i] == elem) { return i + 1; // 返回元素在顺序表中的位置 } } return 0; // 未找到元素 } // 打印顺序表 void PrintList(SqList *L) { for (int i = 0; i < L->length; i++) { printf("%d ", L->data[i]); } printf("\n"); } int main() { SqList L; InitList(&L); ListInsert(&L, 1, 10); ListInsert(&L, 2, 20); ListInsert(&L, 3, 30); PrintList(&L); // 输出:10 20 30 ListDelete(&L, 2); PrintList(&L); // 输出:10 30 int pos = ListSearch(&L, 30); printf("元素30的位置是:%d\n", pos); // 输出:2 return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值