資料結構 棧的實現

2021-07-11 00:18:41 字數 1945 閱讀 3441

1、定義資料元素類 data

package stack;

public class data

@override

public string tostring()

}

2、定義棧結構類  stacktype

package stack;

public class stacktype

/*** 判斷是否空棧

* @return

*/public boolean stackisempty(stacktype st)

/*** 判斷是否滿棧

* 當棧頂引用值為max_size-1時表示滿棧了

* @param st

* @return

*/public boolean stackisfull(stacktype st)

/*** 清空棧

* 棧頂引用值為-1表示乙個空棧

* @param st

* */

public boolean stackclear(stacktype st)

return false;

} /**

* 釋放棧

* @param st

*/public void stackfree(stacktype st)

} /**

* 入棧

* @param st

* @param data

* @return

*/public boolean stackpush(stacktype st,data data)

st.data[++st.top] = data;

return true;

} /**

* 出棧

* @param st

* @return

*/public data stackpop(stacktype st)

data = st.data[st.top--];

return data;

} /**

* 讀棧頂的元素

* @param st

* @return

*/public data stackpeek(stacktype st)

return st.data[st.top]; }

}

3、測試類  teststack

package stack;

public class teststack

system.out.println("棧是否為空?"+st.stackisempty(st));

system.out.println("棧是否已滿?"+st.stackisfull(st));

system.out.println("棧頂元素:"+st.stackpeek(st));

system.out.println("出棧:"+st.stackpop(st));

system.out.println("出棧:"+st.stackpop(st));

system.out.println("棧頂元素:"+st.stackpeek(st));

system.out.println("清空棧:"+st.stackclear(st));

system.out.println("將棧清空後再出棧:"+st.stackpop(st));

st.stackfree(st);}}

4、測試結果

資料結構 實現棧

include include include define node len sizeof node 1 pstack ptop pstack pbottom都指向節點 typedef struct node pnode,node typedef struct stack pstack,stack...

資料結構 棧實現

棧和佇列不一樣,棧是後進先出。實現時用了陣列儲存棧,陣列大小根據內容自動擴充。廢話不多說,上 c mystack.h pragma once templateclass mystack templateint mystack getcount templatet mystack top templa...

資料結構 棧的實現

stack.h pragma once include include include include 定義棧內資料型別 typedef int datetype 定義棧空間大小 define maxsize 20 定義棧的結構體 typedef struct stack stack 初始化棧 vo...