當我們需要兩個棧的儲存資料的時候,可能會出現其中乙個棧不夠用,另外乙個棧又不經常使用的情況,可以試著把兩個棧合體。這是一種策略,在日常生活中也有類似的情況,比如情侶,有的情侶畢業了還是分開住,有的情侶可能會想一起租房子不是更好嘛,他好,我也好。
typedef int入棧elemtype;
typedef
struct
stack;
/*出棧*stacknum為棧的號數
*/int push( stack *s , elemtype e , int
stacknum )
if( stacknum == 1
)
else
return1;
}
int pop( stack *s , elemtype *e , int遍歷stacknum )
else
if( stacknum == 2
)
return1;
}
void display( stack *s )全部**printf(
"\n棧2: ");
for( i = size - 1 ; i >= s->top2 ; i--)
printf("\n
");}
#include#define size 20typedefintelemtype;
typedef
struct
stack;
void init( stack *s )
/**stacknum為棧的號數
*/int push( stack *s , elemtype e , int
stacknum )
if( stacknum == 1
)
else
return1;
}int pop( stack *s , elemtype *e , int
stacknum )
else
if( stacknum == 2
)
return1;
}void display( stack *s )
printf(
"\n棧2: ");
for( i = size - 1 ; i >= s->top2 ; i--)
printf("\n
");}int
main()
棧共享空間
兩棧共享空間的結構的 如下 typedef struct sqdoublestack 對於兩棧共享空間的push方法,我們除了要插入元素值共享引數外,還需要有乙個判斷是棧1還是棧2的棧號引數stacknumber,插入元素的 如下 插入元素e為新的棧頂元素 status push sqdoubles...
棧 兩棧共享空間
對於乙個棧,我們只能盡量考慮周全,設計出合適大小的陣列處理。但是,對於兩個相同型別的棧,我們卻可以做到最大限度地利用其事先開闢的儲存空間進行操作。我們可以用乙個陣列來儲存兩個棧,只不過需要一點小技巧。陣列有兩個端點,兩個棧有兩個棧底,讓乙個棧的棧底為陣列的始端,即下標為0處。另乙個棧的棧底為陣列的末...
兩棧共享空間
include include include define ok 1 define error 0 define maxsize 20 typedef int selemtype typedef int status typedef struct sqdoublestack 雙頭棧的初始化 sta...