順序表的實現(頭插,頭刪尾插,尾刪)

2021-08-13 18:10:07 字數 2186 閱讀 9829

順序表:順序表是在計算機記憶體中以陣列的形式儲存的線性表,是指用一組位址連續的儲存單元依次儲存資料元素的線性結構。線性表採用順序儲存的方式儲存就稱之為順序表。順序表是將表中的結點依次存放在計算機記憶體中一組位址連續的儲存單元中。

順序表特點:將表中元素乙個接乙個的存入一組連續的儲存單元中,這種儲存結構是順序結構。

首先建乙個標頭檔案myc.h

#include#include#includetypedef int datatype;

#define max 2

typedef struct seqlist

seqlist;

void seqprin(seqlist *pseq);//讀出

void seqinit(seqlist* pseq); //初始化

void seqdestory(seqlist* pseq); //銷毀建立的空間

seqlist* seqcheckfull(seqlist *pseq);//若空間不夠則進行擴容

void seqpushback(seqlist* pseq,datatype x);//尾插

void seqpopback(seqlist*pseq);//尾刪

void seqpushfront(seqlist* pseq,datatype x);//頭插

void seqpopfront(seqlist* pseq);//頭刪

void seqinsert(seqlist *pseq,size_t pos,datatype x);//任意位置插入資料

void seqerase(seqlist *pseq,size_t pos);//把pos位置的資料刪除

int seqfind(seqlist *pseq,datatype x);//查詢乙個數,若找到並返回它

void seqat(seqlist *pseq,size_t pos,datatype x);//替換指定位置的值

void bubblesort(seqlist *pseq);//用氣泡排序法排列

void selectsort(seqlist *pseq);//用選擇排序法排序

#endif

然後是主程式  1.c

#include"myc.h"

int main()

void seqprin(seqlist *pseq)//讀寫

void seqinit(seqlist* pseq)//初始化

}void seqdestory(seqlist *pseq)//銷毀所建立的空間

seqlist* seqcheckfull(seqlist *pseq)//進行擴容

void seqpushback(seqlist* pseq,datatype x)//尾插

pseq->arr[pseq->size++]=x;

}void seqpopback(seqlist*pseq)//尾刪

pseq->size--;

}void seqpushfront(seqlist* pseq,datatype x)//頭插

void seqpopfront(seqlist* pseq)//頭刪

for(;isize;i++)

pseq->arr[i-1]=pseq->arr[i];

pseq->size--;

}void seqinsert(seqlist *pseq,size_t pos,datatype x)//在pos位置插入資料

pseq->arr[pos]=x;

pseq->size++;

}void seqerase(seqlist *pseq,size_t pos)//把pos位置的資料刪除

pseq->size--;

}int seqfind(seqlist *pseq,datatype x)//查詢乙個數,若找到並返回它

return -1;

}void seqat(seqlist *pseq,size_t pos,datatype x)//替換指定位置的值

void swap(datatype *x,datatype *y)//交換函式

void bubblesort(seqlist *pseq)//用氣泡排序法排列

} if(flage==0)

break;

}}

雙端鍊錶的頭插尾插頭刪尾刪

雙端鍊錶的定義我在這裡就不贅述了。直接上圖講 雙端鍊錶的插入,無論是頭插還是尾插,都要記住大話資料結構中的一張圖,強調順序的。這裡的順序比較容易記住,就是自己寫 的時候可能會比較迷糊,我是這樣記得,箭頭從起點到終點的方向為等式的左邊,箭頭的終點為等式的右邊,拿 舉例子,箭頭的方向為node prev...

單鏈表的頭增頭刪尾增尾刪

鍊錶是一種資料結構,和陣列同級,鍊錶在進行迴圈遍歷時效率不高,但是在插入和刪除時優勢明顯。單向鍊錶是一種線性表,是有有結點 node 組成的,邏輯上是線性的,物理儲存上不一定,每個結點只能也只有知道下乙個結點的儲存位置,向外暴露的只有乙個頭結點 head 對鍊錶的所有操作都是直接或者間接地通過頭結點...

棧模擬佇列尾插和頭刪

題目 這道題簡單難度,關鍵是聯想到棧和佇列的區別,棧 先進後出,佇列 先進先出。所以要想使用棧來模擬佇列,我們可以想到使用兩個棧不斷地 倒騰 資料 在新增元素到尾部的時候,若是棧一有元素,將全部元素壓入棧二,然後再直接將元素壓入棧二 在刪除佇列頭部元素時,將棧二的元素全部出棧到棧一,此時棧一頂部元素...