#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
#define MAXSIZE 1000
typedef int DateType;
typedef struct SeqList
{
DateType arr[MAXSIZE];
size_t size;
}SeqList;
//打印静态顺序表
void PrintSeqList(SeqList *Seq)
{
assert(Seq);
if (Seq->size == 0)
{
printf("静态顺序表当前为空!\n");
return;
}
for (int index = 0; index < Seq->size; index++)
{
printf("%d-> ", Seq->arr[index]);
}
}
//初始化
void init(SeqList *Seq)
{
assert(Seq);
memset(Seq->arr, 0, sizeof(DateType)* MAXSIZE);
Seq->size = 0;
}
//尾插
void PushBack(SeqList *Seq,DateType x)
{
if (Seq->size >= MAXSIZE)
{
printf("静态顺序表当前已满,无法插入!\n");
return;
}
Seq->arr[Seq->size++] = x;
}
//void Erase(SeqList *Seq, int pos)
//{
// assert(Seq);
// if (Seq->size <= 0)
// {
// printf("静态顺序表当前已空,无法删除!\n");
// return;
// }
// for (int index = pos; index < Seq->size; index++)
// {
// Seq->arr[index] = Seq->arr[index + 1];
// }
// Seq->size--;
//}
void Remove(SeqList *Seq, DateType x)
{
assert(Seq);
int tag = 0;
if (Seq->size <= 0)
{
printf("静态顺序表当前已空,无法删除!\n");
return;
}
int index = 0;
for (; index < Seq->size; index++)
{
if (Seq->arr[index] == x)
{
for (; index < Seq->size; ++index)
{
Seq->arr[index] = Seq->arr[index + 1];
}
--Seq->size;
}
tag = 1;
}
if (tag == 0)
printf("未找到该元素!\n");
}
void Test2(SeqList *Seq)
{
init(Seq);
PushBack(Seq, 0);
PushBack(Seq, 1);
PushBack(Seq, 2);
PushBack(Seq, 3);
PushBack(Seq, 4);
PushBack(Seq, 5);
PrintSeqList(Seq);
printf("\n");
/*Erase(Seq, 2);*/
Remove(Seq, 2);
PrintSeqList(Seq);
printf("\n");
}
int main()
{
/*SeqList Seq;
Test1(&Seq);*/
SeqList Seq;
Seq.size = 0;
Test2(&Seq);
system("pause");
return 0;
}
本文出自 “Han Jing's Blog” 博客,请务必保留此出处http://10740184.blog.51cto.com/10730184/1743161