一个增删改查插的线性表(一)

    又是美好的一天结束了,为了让被催作业的每一天过得不是那么痛苦,睡觉之前上传一下最近写的一个拥有初始化、增删改查、指定位置读取、修改,插入元素,读取指定位置下标的一个链表代码

seqlist.h

#pragma once

#include<stddef.h>

#define SeqlistMaxSize 1000
typedef char SeqType;

typedef struct SeqListList{
	SeqListType data[SeqListMaxSize];
	size_t size;
}SeqList;

void SeqListInit(SeqList* seq);

void SeqListPushBack(SeqList* seqlist,SeqListType value);

void SeqListPushFront(SeqList* seqlist,SeqListType value);

void SeqListPopFront(SeqList* seqlist)

size_t SeqListFind(SeqList* seq,SeqType value);

void SeqListInsert(SeqList* seq,size_t pos,SeqListType value);

void SeqListErase(SeqList* seqlist,size_t pos);

seqlist.c

#include<stdio.h>
#include"seqlist.h"

void SeqListInit(SeqList* seqlist){
	if(seqlist == NULL){
		return;
	}
	seqlist->size = 0;
}

void SeqListPushBack(SeqList* seqlist,SeqListType){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size >= SeqListMaxSize){
		return;
	}
	++seqlist->size;
	seqlist->data[seqlist->size] = value;
	return;
}
void SeqListPopBack(SeqList* seqlist){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size == 0){
		return;//kong shunxubiao
	}
	--seqlist->size;
}

void SeqListPushFront(SeqList* seqlist,SeqListType value){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size >= SeqlistMaxSize){
		return;
	}
	++seqlist->size;
	size_t i = seqlist->size -1;
	for(;i>0;i--){
		seqlist->data[i] = seqlist->data[i-1];
	}
	seqlist->data[0] = value;
	return;
}

void SeqListPopFront(SeqList* seqlist){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size == 0){
		return;//kongshunxubiao
	}
	size_t i = 0;
	for(;i<seqlist->size - 1;++i){
		seqlist->data[i] = seqlist->data[i+1];
	}
	--seqlist->size;
	return;
}

void SeqListInsert(SeqList* seqlist,size_t pos,SeqListType value){
	if(seqlist == NULL){
		return;
	}
	if(pos > seqlist->size){
		return;//pos yuejie pos->[0,pos]
	}
	if(seqlist->size >= SeqListMaxSize){
		return;//shunxubiao yijing manle
	}
	if(pos == 0 ){
		SeqListPushFront(seqlist,value);
		return;
	}
	++seqlist->size;
	size_t i = seqlist->size - 1;
	for(;i - 1 >= pos;--i){
		seqlist->data[i] = seqlist->data[i - 1];
	}
	seqlist->data[pos] = value;
	return;
}

void SeqListErase(SeqList* seqlist,size_t pos){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size == 0){
		return;
	}
	if(pos >= seqlist->size){
		return;//yuejie
	}
	size_t i = pos;
	for(;i<seqlist->size - 1;++i){
		seqlist->data[i] = seqlist->data[i+1];
	}
	--seqlist->size;
	return;
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值