自學 資料結構四月二十二日_線性結構之順序表

Bite_magican發表於2019-04-22

//TODO
1. 什麼是線性結構?
2. 線性結構中都包含什麼內容?
3. 什麼是順序表?順序表的分類?
4. 完成動態順序表的以下操作:
// 動態的順序表
typedef int DataType;
typedef struct SeqList
{
DataType* _array;
int _capacity; // 順序表的總大小
int _size; // 順序表中有效元素的個數
}SeqList, *PSeq;

//typedef struct SeqList SeqList;
//typedef struct SeqList* PSeqList;

// 順序表的初始化
void SeqListInit(PSeq ps, int capacity);

// 在順序表的尾部插入值為data的元素
void SeqListPushBack(PSeq ps, DataType data);

// 刪除順序表最後一個元素
void SeqListPopBack(PSeq ps);

// 在順序表的頭部插入值為data的元素
void SeqListPushFront(PSeq ps, DataType data);

// 刪除順序表頭部的元素
void SeqListPopFront(PSeq ps);

// 在順序表pos位置插入值為data的元素
void SeqListInsert(PSeq ps, int pos, DataType data);

// 刪除順序表中pos位置上的元素
void SeqListErase(PSeq ps, int pos);

// 在順序表中查詢值為data的元素,找到返回該元素在順序表中的下標,否則返回-1
int SeqListFind(PSeq ps, DataType data);

// 檢測順序表是否為空,如果為空返回非0值,非空返回0
int SeqListEmpty(PSeq ps);

// 返回順序表中有效元素的個數
int SeqListSize(PSeq ps);

// 返回順序表的容量大小
int SeqListCapacity(PSeq ps);

// 將順序表中的元素清空
void SeqListClear(PSeq ps);

// 刪除順序表中第一個值為data的元素
void SeqListRemove(PSeq ps, DataType data);

// 銷燬順序表
void SeqListDestroy(PSeq ps);

// 順序表的擴容
void CheckCapacity(PSeq ps);

相關文章