棧和隊列

棧和隊列都是動態(tài)集合裳食,且在其上進行delete操作所移除的元素都是預(yù)先設(shè)定的或衡。在棧(stack)中,被刪除的是最近插入的元素宣增,其實現(xiàn)的是一種后進先出策略玫膀,而在隊列中,被刪除的總是在集合中存在時間最長的那個元素爹脾。隊列實現(xiàn)的是一種先進先出策略帖旨。

棧(堆盤子)

棧上的insert操作稱為壓入(push),無元素參數(shù)的delete操作稱為彈出(POP)灵妨。要查詢一個棧是否為空解阅,可以以用STACK-EMPTY操作,如果對一個空棧進行POP操作泌霍,則稱為棧下溢(錯誤),如果棧頂超過了n,則稱棧上溢朱转。用數(shù)組S[1,2,···n]來實現(xiàn)一個最多可容納n個元素的棧藤为,S.top指向最新插入的元素,棧中包含的元素為S[1分别,···窿吩,S.top]纫雁,其中S[1]是棧底元素轧邪,S[S.top]是棧頂元素。
棧的幾種操作:
STACK-EMPTY

  if S.top==0;
      return TRUE;
  else return FALSE;

PUSH(S,x)

S.top=S.top+1;
S[S.top]=x;

POP(S)

if STACK-EMPTY(S)
   error("underflow")
else S.top=S.top-1;
return S[S.top+1];

隊列(顧客排隊)(環(huán)繞式)

隊列上的INSERT操作稱為入隊(ENQUEUE)曲管,DELETE操作稱為出隊(DEQUEUE)院水。類似棧的POP操作一樣简十,DEQUEUE操作也沒有元素參數(shù)。 數(shù)組Q[1恢恼,···胰默,n]來實現(xiàn)一個最多容納n-1個元素的隊列。Q.head指向?qū)︻^元素漏隐,Q.tail指向下一個新元素將要插入的位置碟刺,當(dāng)Q.head=Q.tail時,隊列為空爽柒。若Q.head=Q.tail=1者填,如果試圖從空隊列中刪除一個元素,則隊列發(fā)生下溢心墅。若Q.head=Q.tail+1怎燥,隊列時滿的铐姚,此時若試圖插入一個元素肛捍,則隊列發(fā)生上溢。
隊列的幾種操作:
ENQUEUE(Q,x)

Q[Q.tail]=x;
if Q.tail==Q.length;
        Q.tail=1;
else
        Q.tail=Q.tail+1;

DEQUEUE(Q)

x=Q[Q.head];
if Q.head=Q.length;
        Q.head=1;
else  
        Q.head=Q.head+1;
return x;

鏈表(其中的各對象按線性順序排列)

數(shù)組的線性順序是由數(shù)組下標(biāo)決定的棺禾,然而與數(shù)組不同的是峭跳,鏈表的順序是由各個對象里的指針決定的。

雙向鏈表

雙向鏈表L的每一個元素都是一個對象竣付,每個對象有一個關(guān)鍵字key和兩個指針古胆,next和prev筛璧。對象中還可以包含其他輔助數(shù)據(jù)(或稱為衛(wèi)星數(shù)據(jù))夭谤。設(shè)x為鏈表的一個元素棺牧,x.next指向它在鏈表中的后繼元素朗儒,x.prev則指向它的前驅(qū)元素颊乘。若干x.prev為NULL醉锄,則是鏈表中的第一個元素乏悄,即鏈表的頭恳不,若x.next=NULL檩小,則為鏈表的尾。屬性L.head指向鏈表的頭烟勋,若L.head=MULL规求,則鏈表L為空卵惦。

單向鏈表:省略prev指針

以排序鏈表

循環(huán)鏈表

鏈表的操作
LIST-SEARCH

x=L.head;
while x!=NULL&&x.key!=k;
       x=x.next;
return x;

LIST-INSERT(L.x)

x.next=L.head;
if L.head!=NULL;
   L.head.prev=x;
L.head=x;
x.prev=NULL;

LIST-DELETE

if x.prev!=NULL;
    x.prev.next=x.next;
else  L.head=x.next;
if x.next!=NULL;
 x.next.prev=x.prev;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末沮尿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌庸疾,老刑警劉巖乍楚,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異金顿,居然都是意外死亡臊泌,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門揍拆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來渠概,“玉大人,你說我怎么就攤上這事嫂拴〔ゾ荆” “怎么了?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵筒狠,是天一觀的道長猪狈。 經(jīng)常有香客問我,道長辩恼,這世上最難降的妖魔是什么雇庙? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮灶伊,結(jié)果婚禮上疆前,老公的妹妹穿的比我還像新娘。我一直安慰自己谁帕,他們只是感情好峡继,可當(dāng)我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著匈挖,像睡著了一般碾牌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上儡循,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天舶吗,我揣著相機與錄音,去河邊找鬼择膝。 笑死誓琼,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播腹侣,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼叔收,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了傲隶?” 一聲冷哼從身側(cè)響起饺律,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跺株,沒想到半個月后复濒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡乒省,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年巧颈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片袖扛。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡砸泛,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蛆封,到底是詐尸還是另有隱情晾嘶,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布娶吞,位于F島的核電站垒迂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏妒蛇。R本人自食惡果不足惜机断,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望绣夺。 院中可真熱鬧吏奸,春花似錦、人聲如沸陶耍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽烈钞。三九已至泊碑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間毯欣,已是汗流浹背馒过。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留酗钞,地道東北人腹忽。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓来累,卻偏偏與公主長得像,于是被迫代替她去往敵國和親窘奏。 傳聞我的和親對象是個殘疾皇子嘹锁,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 棧 棧的英文單詞是Stack,它代表一種特殊的線性表,這種線性表只能在固定一端(通常認(rèn)為是線性表的尾端)進行插入着裹,...
    Jack921閱讀 1,501評論 0 5
  • 1.棧的定義 棧是一種特殊的線性表兼耀。其特殊性在于限定插入和刪除數(shù)據(jù)元素的操作只能在線性表的一端進行 結(jié)論:后進先出...
    西西里的姑娘閱讀 453評論 0 0
  • 懵懵懂懂地度過幼年時光,匆匆碌碌地走過高中三年求冷,接著不知所措的來到大學(xué)。時間一眨眼就過去了窍霞,昨天仿佛還是孩童匠题,...
    e37b4767a43d閱讀 117評論 0 0
  • 昨天貓叔進行了分享韭山,告訴我們,讀書都有哪些誤區(qū)冷溃,也給我們分享了書該怎么讀書才能成功钱磅! 誤區(qū): 1.過早追求快速閱讀...
    安伶兒閱讀 195評論 2 2
  • 來我家里,還不帶我玩似枕?盖淡! “童真與詩意相遇” Bear Snores On《打呼嚕的熊》,暖房子系列繪本之一凿歼,兒童...
    MABEL梅閱讀 561評論 2 0