#pragma once
typedef int DataType;
#define N 10
typedef struct SeqList{
DataType _array[N];
size_t _size;
}SeqList;
//增删查改
void SeqInit(SeqList* sq);
void SeqPushFront(SeqList* sq,DataType x);
void SeqPushBack(SeqList* sq,DataType x);
void SeqPopFront(SeqList* sq);
void SeqPopBack(SeqList* sq);
void SeqInsert(SeqList* sq,size_t pos,DataType x);
void SeqErase(SeqList* sq,size_t pos);
int SeqFind(SeqList* sq,DataType x);
void SeqMofity(SeqList* sq,size_t pos,DataType x);
void SeqInit(SeqList* sq){
memset(sq->_array,0,sizeof(DataType)*N);
sq->_size = 0;
}
void SeqPushFront(SeqList* sq,DataType x){
assert(sq);
if(sq->_size >= N){
printf("SeqList is full\n");
return;
}else{
int max = sq->_size - 1;
while(max >= 0){
sq->_array[max+1] = sq->_array[max];
max--;
}
sq->_array[0] = x;
sq->_size++;
}
}
void SeqPushBack(SeqList* sq,DataType x){
assert(sq);
if(sq->_size >= N){
printf("SeqList is full\n");
}else{
sq->_array[sq->_size] = x;
sq->_size++;
}
}
void SeqPopFront(SeqList* sq){
int i = 1;
assert(sq);
for (;i < sq->_size; ++i)
{
sq->_array[i-1] = sq->_array[i];
}
--sq->_size;
}
void SeqPopBack(SeqList* sq){
int i = 0;
assert(sq);
--sq->_size;
}
void SeqInsert(SeqList* sq,size_t pos,DataType x){
assert(sq);
if(sq->_size >= N){
printf("SeqList is full\n");
}else if(pos > N-1){
printf("Pos is max");
}else{
int end = sq->_size-1;
while(end >= pos){
sq->_array[end+1] = sq->_array[end];
--end;
}
}
sq->_array[pos] = x;
sq->_size++;
}
void SeqErase(SeqList* sq,size_t pos){
int end = sq->_size-1;
assert(sq);
while(end >= pos){
sq->_array[pos] = sq->_array[pos+1];
end--;
}
sq->_size--;
}
int SeqFind(SeqList* sq,DataType x){
int i = 0;
assert(sq);
for(i = 0;i < sq->_size;i++){
if(sq->_array[i] == x)
return i;
}
return -1;
}
void SeqMofity(SeqList* sq,size_t pos,DataType x){
assert(sq);
if(pos > N){
printf("pop is max");
}else{
sq->_array[pos] = x;
}
}
void SeqPrint(SeqList* sq)
{
size_t i = 0;
for ( ; i < sq->_size; ++i)
{
printf("%d ",sq->_array[i]);
}
printf("\n");
}
定长顺序表实现----源代码
猜你喜欢
转载自blog.csdn.net/hgelin/article/details/84558189
今日推荐
周排行