JS資料結構的棧和佇列操作

2021-09-24 20:03:39 字數 2099 閱讀 1138

資料結構:列表、棧、佇列、鍊錶、字典、雜湊、圖和二叉查詢樹!

排序演算法:冒牌、選擇、插入、希爾、歸併和快速!

查詢演算法:順序查詢和二分查詢

在平時工作中,對陣列的操作很是平常,它提供了很多方法使用,比如位置方法、迭代方法、賦值方法等等,而掌握佇列和棧的資料結構使用則會提高你的工作效率!o(∩_∩)o~~

棧是一種後進先出的資料結構,也就是說最新新增的項最早被移出;它是一種運算受限的線性表,只能在表頭/棧頂進行插入和刪除操作。

棧有棧底和棧頂。

向乙個棧插入新元素叫入棧(進棧),就是把新元素放入到棧頂的上面,成為新的棧頂;

從乙個棧刪除元素叫出棧,就是把棧頂的元素刪除掉,相鄰的成為新棧頂;

也就是說棧裡面的元素的插入和刪除操作,只在棧頂進行;

打個比方:一隊人馬走入了一條死胡同,只有乙個入口,無出口,想要出去就只能把尾變成首開始出去;

在網上找了幾張關於出棧入棧的圖以供參考:

js也為陣列提供了方法可以實現類似入棧出棧功能, 入棧push()、 出棧pop();

例子:

後進先出,最後插入的數,先取出!

先:

再:

1

var a=new

array();

2 a.push(1);

3 a.push(2);

4 a.push(3);

5 a.push(4);a.pop()

1

var arr=;

2for(var i=1;i<5;i++)

8for(var i=1;i<=arr.length;i++)

佇列是一種先進先出的資料結構。 佇列在列表的末端增加項,在首端移除項。

它允許在表的首端(佇列頭)進行刪除操作,在表的末端(佇列尾)進行插入操作;(例如在銀行視窗排隊辦理業務,最前面的第乙個人開始辦理,後面來的人只能在隊伍末尾排隊,直到排到他們為止)

佇列是實現多工的重要機制!

相反的來說,可以在末端刪除項,在首端插入項。

找了幾張關於佇列的圖以供參考:

js為陣列提供了方法可以實現佇列功能, 入隊unshift()、 出隊pop();

例子:佇列先進先出,先被插入的資料,先被取出!

方法,它能在陣列首端新增任意個項並返回新陣列的長度

pop()方法,刪除並返回陣列的最後乙個元素

unshift()方法,它能在陣列首端新增任意個項並返回新陣列的長度

shift()方法,刪除並返回陣列的第乙個元素

需要注意的一點是,按照先進先出的佇列規則讓第乙個元素出隊時,可使用shift()方法來完成。

出隊區別使用 shift() 和 pop() 

資料結構 棧和佇列相關操作

include using namespace std 棧typedef struct stack 初始化棧 void stack init stack s 入棧 void stack push stack s,int e s.top e s.top 出棧 void stack pop stack ...

資料結構 棧和佇列的操作 c

要求 1 程式設計實現棧的以下基本操作 建棧,取棧頂元素,入棧,出棧。2 程式設計實現佇列的以下基本操作 建佇列,取隊頭元素,入隊,出隊。include define ok 1 define error 0 define maxsize 100 typedef int selemtype typed...

資料結構 棧和佇列

棧 基礎 知識棧 練習題 佇列 基礎知識 棧示意圖 後進先出 順序棧結構定義 define maxsize 1024 struct stack 操作函式 push 入棧 pop 出棧 struct lstack 鏈棧示意圖 操作函式 push 入棧 pop 出棧 注意 也可以直接呼叫系統已經寫好的庫...