【创】MySequentialList【顺序表】

//线性表 SeqList Sequential List


#include <stdio.h>
#include <stdlib.h>


typedef struct SequentialList{
	int *elem;
	int length;
	int size;
} SqList;

//初始化
SqList InitList(SqList L, int n){
	
	L.elem = new int[n];
	if(L.elem==NULL){
		printf("NOO");
		exit(0);
	}
	L.length=0;
	L.size = n;
	return L;
}

//查找
int LocateElem(SqList L,int x){
	for(int i=0; i<L.length; i++){
		if(L.elem[i]==x){
			return i+1;
		}
	}
	return -1;
}

//插入
SqList InsertElem(SqList L, int index, int x){
	if(index>L.length+1 || index<1){
		printf("插入有问题");
		return L;
	}
	for(int i=L.length-1; i>=index-1; i--){
		L.elem[i+1] = L.elem[i];
	}
	L.elem[index-1] = x;
	L.length++;
	return L;
}

//删除
SqList DeleteElem(SqList L, int index){
	if (index>L.length || index<1) {
		printf("被删除元素的位置有误");
		exit(0);
	}
	//删除操作
	for (int i=index; i<L.length; i++) {
		L.elem[i-1]=L.elem[i];
	}
	L.length--;
	return L;
}	

//输出
void Display(SqList L){
	for (int i=0; i<L.length; i++) {
		printf("%d ",L.elem[i]);
	}
	printf("\n");
}




int main(int argc, char *argv[]) 
{
	SqList L;
	int n;
	printf("输入总长度:");
	scanf("%d",&n);
	L = InitList(L,n);
	int x;
	printf("输入数字:");
	for(int i=1; i<=n; i++){
		scanf("%d",&x);
		L.elem[i-1] = x;
		L.length++;
	}
	
	printf("原顺序表:\n");
	Display(L);
	
	int d;
	printf("删除位置为d:\n");
	printf("输入删除的位置:");
	scanf("%d",&d);
	L=DeleteElem(L, d);
	Display(L);
	
	int index;
	int k;
	printf("在第index的位置插入元素x:\n");
	printf("输入index=? x=?");
	scanf("%d %d",&index, &k);
	L=InsertElem(L, index, k);
	Display(L);
	
	int s;
	printf("查找元素s的位置:\n");
	printf("输入需要查找的元素:");
	scanf("%d",&s);
	int see=LocateElem(L,s);
	printf("%d\n",see);
	
	
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值