兩棧共享空間

2021-08-02 18:07:08 字數 535 閱讀 4447

/*

兩棧共享空間

*///儲存結構定義

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;        //在棧1插入

if(i == 2)

s.data[--s.top2] = x;        //在棧2插入

}//出棧操作:當top1指向-1時,棧1為空,當top2指向stacksize時棧2為空,當從棧2刪除元素,棧頂指標top2加1

datatype pop(bothstack &s,int i)

return s.data[s.top1--];

}if(i == 2)

return s.data[s.top2++];        }}

棧 兩棧共享空間

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

兩棧共享空間

include include include define ok 1 define error 0 define maxsize 20 typedef int selemtype typedef int status typedef struct sqdoublestack 雙頭棧的初始化 sta...

兩棧共享空間

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