用c语言实现顺序表

用c语言实现顺序表

Seqlist.h

#pragma once
typedef int DataType;
#define N 100
typedef struct Seqlist
{
	DataType array[N];
	size_t size;
}Seqlist;

void InitSeqlist(Seqlist* s); //初始化
void PrintSeqlist(Seqlist* s); //打印
void PushBack(Seqlist* s, DataType x); //尾插
void PopBack(Seqlist* s); //尾删
void PushFront(Seqlist* s, DataType x); //头插
void PopFront(Seqlist* s); //头删
void Insert(Seqlist* s, size_t pos, DataType x); //将x插入任意位置
int Find(Seqlist* s, DataType x); //查找元素
void Erase(Seqlist* s, size_t pos); //删除任意位置元素
void Modify(Seqlist* s, size_t pos, DataType x); //替换,将pos位置值修改为x
int Remove(Seqlist* s, DataType x); //移除某值的第一项
int RemoveAll(Seqlist* s, DataType x); //移除某值得全部项
void Swap(DataType* left, DataType* right); //交换两元素
void BubbleSort(Seqlist* s); //冒泡排序
void SelectSort(Seqlist* s); //选择排序
void SelectSort_OP(Seqlist* s); //选择排序的优化
int BinarySearch(Seqlist* s, DataType x); //二分查找

void InitSeqlist(Seqlist* s) //初始化
{
	memset(s->array, 0, sizeof(DataType)*N);
	s->size = 0;
}

void PrintSeqlist(Seqlist* s) //打印
{
	for (size_t i = 0; i < s->size; i++)
	{
		printf("%d ", s->array[i]);
	}
	printf("\n");
}

void PushBack(Seqlist* s, DataType x) //尾插
{
	assert(s);
	if (s->size == N)
	{
		printf("Seqlist is full \n");
		return;
	}
	s->array[s->size++] = x;
}

void PopBack(Seqlist* s) //尾删
{
	assert(s);
	if (s->size ==
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用c语言实现顺序的删除的基本代码: ```c #include <stdio.h> #include <stdlib.h> #define MAXSIZE 100 // 定义最大容量 typedef struct { int data[MAXSIZE]; // 存储数据元素的数组 int length; // 当前长度 } SqList; // 顺序类型定义 // 删除操作 int deleteElem(SqList *list, int index) { if (index < 1 || index > list->length) { // 判断删除位置是否合法 return 0; } int i; for (i = index; i < list->length; i++) { // 将删除位置后面的元素依次前移 list->data[i-1] = list->data[i]; } list->length--; // 长度减一 return 1; } int main() { SqList list = {{1, 2, 3, 4, 5}, 5}; // 初始化顺序 int i; printf("原顺序:"); for (i = 0; i < list.length; i++) { // 输出原顺序 printf("%d ", list.data[i]); } printf("\n"); deleteElem(&list, 3); // 删除第三个元素 printf("删除后顺序:"); for (i = 0; i < list.length; i++) { // 输出删除后的顺序 printf("%d ", list.data[i]); } printf("\n"); return 0; } ``` 在上面的代码中,我们定义了一个 `SqList` 结构体类型,用于顺序。其中,`data` 数组用于存储数据元素,`length` 示当前顺序的长度。`deleteElem` 函数用于删除指定位置的元素,它首先判断删除位置是否合法,如果合法则将删除位置后面的元素依次前移,最后将顺序长度减一。在 `main` 函数中,我们初始化了一个顺序,并调用 `deleteElem` 函数删除第三个元素。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值