棧的描述:
線性結構,有序列表,先進後出
陣列實現棧:
思路:記錄一下棧頂元素的索引,加入新元素時索引++,索引位置對應的值設為新元素,直到棧滿,取出元素後,索引–,直到小於0,棧空;
/**
* 鍊錶實現棧
*/public class arraystack
/*** 棧滿
** @return
*/public boolean isfull()
/*** 是否為空
** @return
*/public boolean isempty()
/*** 入棧
** @param add
*/public void push(int add)
top++;
arr[top] = add;
}/**
* 出棧
*/public int poll()
int value = arr[top];
top--;
return value;
}/**
* 檢視棧頂
** @return
*/public int peek()
return arr[top];
}public void show()
}public void showarray()
}
單鏈表實現棧:
思路:將新加的節點放在head節點的下乙個位置,取出的時候直接取head節點的下乙個節點,直到鍊錶為空
/**
* 鍊錶實現棧
*/public class linkedstack
/*** 是否為空
** @return
*/public boolean isempty()
/*** 入棧
** @param node
*/public void push(node node)
/*** 出棧
*/public node poll()
node next = head.next;
head.next = next.next;
return next;
}/**
* 檢視棧頂
** @return
*/public node peek()
return head.next;
}public void show()
node next = head.next;
while (next != null)
system.out.println("出棧完畢");
}public void showarray()
node next = head.next;
while (next != null)
system.out.println("遍歷完畢");
}public static class node
public node(string value)
public string getvalue()
public void setvalue(string value)
public node getnext()
public void setnext(node next)
@override
public string tostring() ';}}
}
棧的簡單實現
設棧採用順序儲存結構 用動態陣列 請編寫棧的各種基本操作的實現函式 棧的動態陣列順序儲存結構可定義如下 struct stack 棧的基本操作可包括 void initstack stack s 構造乙個空棧 s int emptystack stack s 若棧s 為空棧返回 1,否則返回0 vo...
棧的簡單實現(順序棧 鏈棧)
include define maxsize 100 define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 using namespace std typedef i...
棧的簡單實現(二)
上文棧的簡單實現 一 實現了不能擴充套件棧容量的順序棧結構,這次給棧加上擴容功能,這樣就不用擔心出現滿棧的情況了。不過由於本人技術水平不夠,也還在學習當中,因此只能固定擴大大小,而不是根據實際情況進行最合適的擴大。跟上文 差不多,只是新增了乙個擴容的方法,以及改變了push方法。新增 如下 擴大棧的...