棧和佇列 演算法設計題3 15

2022-02-08 07:03:38 字數 940 閱讀 2129

假設以順序儲存結構實現乙個雙向棧,即在一維陣列的儲存空間中存在著兩個棧,它們的棧底分別設在陣列的兩個端點。試編寫實現這個雙向棧tws的三個操作:初始化inistack(tws)、入棧push(tws,i,x)和出棧pop(tws,i)的演算法,其中i為0或1,用以分別指示設在陣列兩端的兩個棧.

c  code:

<

stdio.h

>

#include

<

stdlib.h

>

#define

ok 1

#define

overflow -1

#define

error 1

typedef 

intstatus;

typedef 

struct

bdstack;

status initstack(bdstack &s,

intm)

status push(bdstack &s,

inti,

intx)

status pop(bdstack &s,

inti,

intx)

else

if(i==1

)else

return

error;

return

ok;}

void

printfstack(bdstack &s)

while

(s.top[1]

<=

s.base[1

])}intmain()

for(i=0

; i<(m-

2)/2

; i++

)s.top[0]

--;s.top[1]

++;printfstack(s);

return0;

}

棧和佇列 演算法設計題3 15

假設以順序儲存結構實現乙個雙向棧,即在一維陣列的儲存空間中存在著兩個棧,它們的棧底分別設在陣列的兩個端點。試編寫實現這個雙向棧tws的三個操作 初始化inistack tws 入棧push tws,i,x 和出棧pop tws,i 的演算法,其中i為0或1,用以分別指示設在陣列兩端的兩個棧.c co...

棧和佇列演算法

1 實現乙個棧,要求實現push 出棧 pop 入棧 min 返回最小值 的時間 複雜度為o 1 方法1 使用乙個棧實現,交叉棧 pragma once include define max value 100 typedef struct minstackminstack 實現乙個棧,要求實現pu...

演算法 佇列和棧

雙端佇列的首部和尾部都可以亞壓入元素 public class statck stacktest array public static void stacktest int array else else data.push array i system.out.println 每一步棧的最小值 ...