C语言简单实现动态顺序表
我们首先了解一下何为顺序表。
顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构。线性表采用顺序存储的方式存储就称之为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。
静态实现:结构体内部只需两个成员,其中一个为固定大小(MAX)的数组,用来存放我们的数据。数组大小我们可以通过在头文件中改变MAX的值来改变。
动态实现:在内存中开辟一块空间,可以随我们数据数量的增多来扩容。
下面只介绍动态实现。
头文件:SeqList.h
#ifndef __SEQLIST_H__
#define __SEQLIST_H__
#include <stdio.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#define DEFAULT_SZ 2
#define INC 2
typedef int DataType;
typedef struct SeqList
{
DataType *data;
int sz;
int capacity;
}SeqList, *pSeqList;
void InitSeqList(pSeqList ps); //初始化
void Checkcapacity(pSeqList ps); //检查是否需要扩容
void DestroySeqList(pSeqList ps); //销毁顺序表
void PushBack(pSeqList ps, DataType d); //尾部压入元素
void P