代码:
SeqListD.h
#pragma once
#include "stdio.h"
#include "stdlib.h"
#include "assert.h"
typedef int DataType;
typedef struct SeqListD
{
DataType* data;
int sz;
int capicity;
}SeqListD,*pSeqListD;
void InitSeqListD(pSeqListD ps);//
void DestroySeqListD(pSeqListD ps);//
void PushBack(pSeqListD ps, DataType d);//
void PrintSeqListD(const pSeqListD ps);//
void PopBack(pSeqListD ps);//
void PushFront(pSeqListD ps, DataType d);//
void PopFront(pSeqListD ps);//
void Insert(pSeqListD ps, int pos, DataType d);//
void Erase(pSeqListD ps, int pos);//
void Sort(pSeqListD ps);//
int BinarySearch(pSeqListD ps, DataType d);//
int Find(pSeqListD ps, DataType d);//
void Remove(pSeqListD ps, DataType d);//
void RemoveAll(pSeqListD ps, DataType d);//
SeqListD.c
#define _CRT_SECURE_NO_DEPRECATE 1
#include "SeqListD.h"
void InitSeqListD(pSeqListD ps)
{
assert(ps);
ps->data= (DataType*)calloc(5, sizeof(DataType));
ps->sz = 0;
ps->capicity = 3;
}
void DestroySeqListD(pSeqListD ps)
{
assert(ps);
free(ps->data);
ps->capicity = 0;
ps->sz = 0;
}
void ExpandCapicity(pSeqListD ps)
{
assert(ps != NULL);
if (ps->sz<ps->capicity)
{
return;
}
else
{
DataType* tmp = NULL;
tmp = (DataType*)realloc(ps->data, (ps->capicity + 5)*s