自學 資料結構四月二十三日_線性結構之順序表(2)
//今天繼續完成連結串列~ 晚上看電影 明天繼續
//1. 什麼是線性結構?
//線性結構是一個有序資料元素集合;
//
//2. 線性結構中都包含什麼內容?
//線性表, 棧, 列隊, 雙佇列, 陣列, 串;
//
//3. 什麼是順序表?順序表的分類?
//一段實體地址連續的儲存單元連成的線性結構(一般用陣列儲存)
//4. 動態順序表的以下操作:
// 動態的順序表
#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996)
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){
if (NULL == ps){
printf(“空指標\n”);
return;
}
ps->_size = 0;
}
// 在順序表的尾部插入值為data的元素
void SeqListPushBack(PSeq ps, DataType data){
if (NULL == ps){
printf(“空指標\n”);
assert(0);
}
if (_capacity == ps->_size){//判斷是否滿
printf(“空間已滿, 無法寫入\n”);
return;
}
ps->_array[ps->_size] = data;//尾部插入
ps->_size++;//長度加一
}
// 刪除順序表最後一個元素
void SeqListPopBack(PSeq ps){
if (NULL == ps){
printf(“空指標\n”);
assert(0);
}
ps->_size–;//長度減一, 後面的內容丟棄
}
// 在順序表的頭部插入值為data的元素
void SeqListPushFront(PSeq ps, DataType data){
int i = 0;
if (NULL == ps){
printf(“空指標\n”);
assert(0);
}
if (MAX_SIZE == ps->_size){
printf(“空間已滿, 無法寫入\n”);
return;
}
for (i = ps->_size; i > 0; --1){//往後挪, 挪出第一個用來裝入資料
}
}
// 刪除順序表頭部的元素
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);
相關文章
- 自學 資料結構四月二十二日_線性結構之順序表資料結構
- 資料結構 - 線性表 - 順序表資料結構
- 考研資料結構-線性表-順序表資料結構
- 線性表之順序儲存結構
- 資料結構與演算法 | 線性表 —— 順序表資料結構演算法
- 11 線性表的順序儲存結構
- 資料結構基礎學習之線性表資料結構
- 資料結構——線性表資料結構
- 資料結構 | 線性表資料結構
- 資料結構-線性表資料結構
- 資料結構—線性表資料結構
- [資料結構] - 線性表資料結構
- 資料結構-線性表、連結串列資料結構
- Java實現資料結構之線性結構Java資料結構
- 【資料結構與演算法學習】線性表(順序表、單連結串列、雙向連結串列、迴圈連結串列)資料結構演算法
- 順序結構
- 資料結構與演算法之線性結構資料結構演算法
- 【資料結構】線性表-單連結串列資料結構
- 線性表__資料結構筆記資料結構筆記
- 資料結構:線性表-例題資料結構
- python演算法與資料結構-順序表(37)Python演算法資料結構
- Java學習筆記:資料結構之線性表(雙向連結串列)Java筆記資料結構
- 順序結構與選擇結構
- 資料結構實驗之連結串列一:順序建立連結串列資料結構
- 前端資料結構--線性結構-連結串列前端資料結構
- 資料結構:特殊的線性表之 棧 & 佇列資料結構佇列
- 資料結構 順序棧(c語言)資料結構C語言
- 資料結構筆記——線性表(下)資料結構筆記
- 資料結構筆記——線性表(中)資料結構筆記
- 資料結構——線性表P35.1資料結構
- 資料結構c語言實現順序表基本操作資料結構C語言
- C++順序結構(3)、資料型別_____教學C++資料型別
- 資料結構知否知否系列之 — 線性表的順序與鏈式儲存篇(8000 多字長資料結構
- 資料結構練習題(順序表和單連結串列)C++資料結構C++
- C#資料結構-二叉樹-順序儲存結構C#資料結構二叉樹
- 資料結構與演算法 - 線性表資料結構演算法
- 資料結構線性表兩種方式分享資料結構
- 具體實現程式碼@資料結構探險——順序表資料結構