資料結構 棧的順序儲存結構

2021-08-28 11:27:54 字數 1200 閱讀 4574

什麼是棧?簡單的說是乙個後進先出的表,類似於彈夾,後入的子彈先打出來。

下面是棧的一些具體操作步驟:

首先是棧的結構定義:

typedef int selemtype;

typedef struct sqstack, *sq;

棧的初始化、建立操作:

sq initstack(sq s)

s->top = -1;

printf("棧建立成功!!");

return s;

}

棧的壓入操作:

bool pushstack(sq s, selemtype e)

s->top++;

s->data[s->top] = e;

return true;

}

棧的彈出操作:

int popstack(sq s)

selemtype e = s->data[s->top--];

return e;

}

有時候我們需要倆個空間需求相反的棧,我們會使用棧的空間共享結構:

這種結構將陣列分為倆部分,一棧和二棧,採用倆個棧頂標記,乙個標記在前面,乙個標記在後面。

下面是具體的操作:

結構體定義操作:

typedef int elemtype;

typedef structsqdoublestack, *sqdu;

初始化、建立操作:

sqdu initstack(sqdu q)

printf("該棧建立成功!!\n");

q->top1 = -1;

q->top2 = maxsize;

return q;

}

壓入操作:

void pushstack(sqdu q, elemtype e, elemtype stack_number) 

if(stack_number == 1)else

}

彈出操作:

int popstack(sqdu q, elemtype stack_number)else

}elseelse

}}

資料結構(棧 順序儲存 )

棧是特殊的線性表,規定插入和刪除在同一端進行 進行插入和刪除的那一端成為棧頂,另一端為棧底 插入為進棧,刪除為出棧 先進後出 ps 例如 abc進棧 出棧共有幾種情況 上溢 超出規定的空間大小還進行插入操作 下溢 棧中元素已經用完了還進行刪除操作 include include include de...

順序儲存 資料結構 棧

備註 以列表為基礎進行對此的封裝,以便達到棧的效果及作用 1 2棧的順序儲存結構 3重點 4 56 自定義棧異常 7class stackerror exception 8pass910 基於列表實現順序棧 11class sstack 12def init self 13 約定列表的最後乙個元素為...

資料結構 棧的順序儲存

棧是一種後進先出的資料結構,也就是說他不像陣列那樣子,可以在中間插入,棧只能夠在上乙個存入資料的後面再存資料,而且只能取現進去的資料。棧簡稱lifo結構。棧是限定僅在表位進行插入和刪除操作的線性表。允許插入和刪除的一端叫棧頂,另一端叫棧底,不含任何元素的叫空棧。棧的插入操作,叫做進棧,也稱作壓棧,入...