这篇文章是顺序表各种操作的总结,供大家参考,有任何不对的地方也欢迎大家指出!
代码里用“///"分隔了每一种操作;
函数的声明和实现放在了 seqlist.h 里;
函数的调用放在 Main.cpp 里;
一些通用的头文件放在 Common.h 里。
主要就是实现如下图的功能
以下是全部代码
Common.h
#ifndef _COMMON_H_
#define _COMMON_H_
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>
#include <Windows.h>
#define ElemType int
void Swap(ElemType *a, ElemType *b)
{
ElemType tmp = *a;
*a = *b;
*b = tmp;
}
#pragma warning (disable:4996)
#endif
seqlist.h
#ifndef _SEQLIST_H_
#define _SEQLIST_H_
#include "Common.h"
#define SEQLIST_DEFAULT_SIZE 8;
//定义顺序表的结构
typedef struct SeqList
{
ElemType *base;
size_t capacity;
size_t size;
}SeqList;
//函数声明
void SeqListInit(SeqList *plist);
void SeqListDestroy(SeqList *plist);
void SeqListPushBack(SeqList *plist,ElemType x);
void SeqListPushFront(SeqList *plist, ElemType x);
void SeqListShow(SeqList *plist);
size_t SeqListLength(SeqList *plist);
void SeqListPopBack(SeqList *plist);
void SeqLIistClear(SeqList *plist);
bool SeqListInsertbypos(SeqList *plist, size_t pos, ElemType x);
void SeqListSort(SeqList *plist);
bool SeqListInsertbyval(SeqList *plist, ElemType x);
size_t SeqListCapacity(SeqList *plist);
void SeqListEarsebypos(SeqList *plist, size_t pos);
void SeqListPopFront(SeqList *plist);
int SeqListFind(SeqList *plist,ElemType x);
void SeqListErasebyval(SeqList *plist,ElemType x);
void SeqListReverse(SeqList *plist);
bool _Inc(SeqList *plist, size_t new_capacity);
/
//函数实现
bool IsFull(SeqList *plist)
{
assert(plist!=NULL);
return plist->size >= p