將棧S中的元素逆置,使用額外的乙個棧L和非陣列變數

2021-07-03 06:26:30 字數 850 閱讀 4047

/*將棧s中的元素逆置,使用額外的乙個棧l和非陣列變數*/

#include

#include

#include

#define ok 1

#define error 0

#define maxsize 20

typedef

int elemtype;

typedef

int status;

typedef

struct

sqstack;

//順序棧的初始化

status initsqstack(sqstack * s)

//順序棧的建立

status create(sqstack * s,int n)

return ok;

}//順序棧的出棧

status pop(sqstack * s,elemtype * e)

//順序棧的入棧

status push(sqstack * s,elemtype e)

//順序棧輸出

void print(sqstack * s)

printf("\n");

}//利用非陣列變數逆置棧s裡的元素

顛倒棧中元素 棧的逆置

思路 1.使用遞迴pop出棧中元素,直到棧中元素只剩下乙個元素 2.當前第一次遞迴返回的時候,棧中有2個元素,我們再利用另乙個遞迴函式putitem把兩個元素逆置 3.以此遞迴下去,直到棧中元素全部逆置。過程如下 1 1 2,3,4 第乙個遞迴不斷出棧,第一次滿足返回條件時,棧中元素只有 1 2 回...

將乙個雙向鍊錶逆置的正確姿勢

雙向鍊錶中含有資料成員 data,prev,next,也就是說資料節點前後都有乙個指向前乙個節點和後乙個節點的指標。然而要想實現雙向鍊錶的逆置,首先我們先來了解一下單鏈表的逆置 單鏈表的逆置,所採用的方法是頭插法,所謂的頭插法就是新建乙個newhead指標,這個指標永遠指向新的鍊錶的頭節點 head...

不使用額外空間,將 A,B兩鍊錶的元素交叉歸併

includeusing namespace std typedef struct node list void print list list cout endl void merge list list1,list list2 int main for int i 99 i 0 i 2 prin...