啊哈演算法 第二章 棧 佇列 鍊錶

2021-10-21 19:53:04 字數 1141 閱讀 5927

2.2 解密回文字串——棧

將一串數字奇數字刪除,偶數字依次移動到末尾,直到只剩下乙個數字,最後將奇數字數字依次回歸,得到最終序列。

(1) 我的解法

題目要求將奇數字刪除再歸位,可理解為跳過奇數字數字,再移動偶數字數字。

#

include

intmain()

else

}getchar()

;getchar()

;return0;

}

(2) 啊哈演算法原解
#

include

intmain()

,head,tail;

//初始化佇列

head=

1; //隊首元素在陣列中的位置(頭指標的位置)

tail=10;

//隊中有9個元素,尾指標指向最後乙個元素的下一位,位置為10

while

(headgetchar()

;getchar()

;return0;

}

(3)使用結構體,將元素封裝起來
#

include

struct

queue

;//用於儲存元素

int tail;

//尾指標,指示隊尾元素的位置

int head;

//頭指標,用於指示隊首指標的位置

}int

main()

while

(q.headgetchar()

;getchar()

;return0;

}

棧是一後進先出的資料結構。在判斷字串是否是回文字串時,可以不用把所有字元入棧,將中點位置後的字串與中點位置前的字串一一比較,即只將中點位置前的字串入棧。

#

include

#include

intmain()

top--;}

if(top==0)

printf

("yes");

getchar()

;getchar()

;return0;

}

啊哈!演算法 棧 佇列 鍊錶

特點 管子,兩邊開口,先進先出 first in first out 佇列的三個基本元素 乙個陣列,兩個變數 include using namespace std struct queue typedef struct queue queue 將 struct queue 重新命名為 queue ...

《程式設計珠璣》第二章 「啊哈!演算法」

三個問題 1.給定乙個最多包含40億個隨機排列的32位整數的順序檔案,找出乙個不在檔案中的32位整數 在檔案中至少缺失乙個這樣的數 為什麼?在具有足夠記憶體的情況下,如何解決該問題?如果有幾個外部臨時檔案可用,但是僅有幾百位元組的記憶體,又該如何解決該問題?記憶體足夠的情況下,可以採用位圖法。即設一...

演算法 第二章 優先佇列

先介紹兩個動作方法。1.下沉 2.上浮 1.下沉 下沉 k指的是父節點 private void sink int k 2.上浮 上浮 private void swim int k 優先佇列 是一種抽象資料型別。api 見p195,最重要的操作就是 1.刪除最大元素。2.插入元素。具體實現如下 僅...