C语言:顺序表

#include<stdio.h>
#include<stdbool.h>
#define Maxsize 20
typedef int ElemType; //这个做法的目的是将ElemType等效于变量类型定义名int,相当于给int取了个新名字ElemType;
// 比如定义一个整型数组的一般方式是 int array[],现在可以使用ElemType array[]的方式来定义一个整型数组;

typedef struct {
	ElemType array[Maxsize];
	int length;
}Sqlist;


//顺序表的初始化
void init(Sqlist* L)
{
	L->length = 0;
}

// 添加数据
void assert(Sqlist* L, int number)
{
	if (L->length < Maxsize)
	{
		L->array[L->length] = number;
		L->length++;
	}
	else
	{
		printf("顺序表已满!\n");
	}
}

//顺序表的查找
void find(Sqlist* L,int number)
{
	bool tag = true;
	for (int i = 0; i < Maxsize; i++)
	{
		if (number == L->array[i])
		{
			printf("目标数据的下标为%d:\n", i);
			tag = false;
		}
	}
	if (tag)
	{
		printf("顺序表中没有该数据!\n");
	}
}

//删除特定位置的元素

void delete(Sqlist* L, int position)
{
	for (int i = position; i < L->length; i++)
	{
		L->array[i] = L->array[i + 1];
	}
}

//打印顺序表
void print(Sqlist* L)
{
	for (int i = 0; i < L->length; i++)
	{
		printf("%d  ", L->array[i]);
	}
	L->length--;
}


int main()
{
	Sqlist L;
	init(&L);
	for (int i = 2; i < 10; i++)
	{
		assert(&L, i);
	}
	print(&L);
	printf("\n");

	assert(&L, 8);
	print(&L);
	printf("\n");

	find(&L, 90);

	delete(&L, 4);
	print(&L);
	printf("\n");

	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值