兩棧共享空間

2021-07-02 15:14:32 字數 1166 閱讀 5657

#include

#include

#include

#define ok 1

#define error 0

#define maxsize 20

typedef

int selemtype;

typedef

int status;

typedef

struct

sqdoublestack;

//雙頭棧的初始化

status initsqdoublestack(sqdoublestack * s)

//雙頭棧的建立

status create(sqdoublestack * s,int n,int m)

for(int j=0;jdata[--s->top2]=rand()%100+1;

}return ok;

}//插入元素e為型的棧頂元素

status push(sqdoublestack * s,selemtype e,int stacknumber)

if(stacknumber==1) //棧1有元素進棧

else

if(stacknumber==2) //棧2有元素進棧

return ok;

}//若棧不空,則刪除s的棧頂元素,用e返回其值,並放回ok,否則返回error

status pop(sqdoublestack * s,selemtype * e,int stacknumber)

*e=s->data[s->top1--]; //將棧頂元素出棧

}else

if(stacknumber==2)

*e=s->data[s->top2++]; //將棧頂元素出棧

}return ok;

}//輸出

void print(sqdoublestack * s)

printf("\n");

printf("棧2元素:\n");

棧 兩棧共享空間

對於乙個棧,我們只能盡量考慮周全,設計出合適大小的陣列處理。但是,對於兩個相同型別的棧,我們卻可以做到最大限度地利用其事先開闢的儲存空間進行操作。我們可以用乙個陣列來儲存兩個棧,只不過需要一點小技巧。陣列有兩個端點,兩個棧有兩個棧底,讓乙個棧的棧底為陣列的始端,即下標為0處。另乙個棧的棧底為陣列的末...

兩棧共享空間

1.共有棧的實現 package edu.tcu.soft 兩棧共享空間 public class mybothstack 入棧操作 public void push int i,e e else 如果i 2,入右棧 if i 2 出棧操作 suppresswarnings unchecked pu...

兩棧共享空間

兩棧共享空間 儲存結構定義 const int stacksize 10 typedef int datatype typedef struct bothstack 入棧操作 void push bothstack s,int i,datatype x if i 1 s.data s.top1 x ...