⑴ 如何使一個隊列倒置
最簡單的方法是利用一個臨時棧來實現,所有元素出隊列後都進棧,然後所有元素出棧再進隊列;如果是用STL的vector或list話就更簡單了……直接用rbegin迭代器就好了
⑵ 數據結構和演算法有什麼關系數據結構就是演算法嗎
首先你要弄清楚數據結構是什麼?數據結構呢其實就是一種存儲數據之間的邏輯結構:比如我們學過的線性結構:順序表啦,鏈表啦;層次結構:樹啦。合適的數據結構可以帶來更高的運行效率和存儲效率,與相應解決實際問題演算法的適應性也就越高,這也就是為什麼一些演算法指定了數據存儲必須以某種特定的數據結才行。一般都是根據合適的數據結構來設計演算法,而不是根據演算法來設計數據結構。
演算法和數據結構往往是互不分開的。離開了演算法,數據結構就顯得毫無意義,而沒有了數據結構演算法就沒有實現的條件。良好的數據結構思想就是一種高效的演算法,但是數據結構不等於演算法。只有當數據結構用於處理某個特定問題類型的時候,數據結構才會體現為演算法。要想細致的了解,就要多看書,因為這東西畢竟發展了那麼多年,一兩句話是說不清楚的。想知道更多的數據結構與演算法知識嗎?可以去了解一下小碼哥李明傑。
⑶ 數據結構中隊列設計演算法思想是什麼
隊列是一種先進先出的線性表,只允許在表的一端進行插入而在另一端刪除元素
既隊頭刪除、隊尾插入
順序存儲、鏈表存儲只是對應相應的插入刪除操作
⑷ (數據結構C++版)已知Q是一個非空隊列,S是一個空棧。藉助隊列和棧的ADT函數將隊列Q中的所有元素逆置。
利用隊列的先進先出和棧的先進後出。將Q的元素放到S去,然後清空Q,將S放到Q去,根據先進後出,Q就被倒置。
⑸ 數據結構 問題(棧和隊列)求解答
(1)將隊列中的元素順序顛倒,比如原隊列ABCD,執行後DCBA
(2)將棧中的m元素移除,比如棧ABCDBCDC,m=B,執行後ACDCDC
⑹ 「數據結構」 和 「數據類型」 兩個概念的本質是什麼,兩者的區別與聯系是什麼它們是從屬關系嗎
數據結構與數據類型不是孤立的,首先你要知道他們都是為編程、為演算法服務的,其次值,數據類型,數據結構相互是有關聯的。
那麼什麼是演算法?演算法就是解決問題的步驟,即使是烹飪,也是演算法,因為它需要一定的變數輸入(各種原料配料),通過一定的解決問題的步驟(烹飪),然後得出結果,烹飪過程就是其中的演算法。
這些輸入的變數(比如鹽、糖、油、調味料、肉塊),就是數據(或者說是值),這些數據有自己的特點,油用ml衡量,糖鹽用湯匙衡量,肉塊用g衡量。這些衡量的方法就是數據類型。
在演算法中,所有的數據都有類型,整數型、浮點型、字元型、字元串型、布爾型。。。
那麼什麼是數據結構?演算法中要輸入大量數據並對這些數據進行處理,最終得到輸出結果。而在這些數據的輸入輸出、調用和處理過程中,我們要保存各種各樣的數據並有效的管理數據。大量數據的有效管理機制就叫做數據結構。像上面烹飪的例子中,你如何安放這些糖鹽肉,以便你在處理烹飪的時候可以更快捷不會手忙腳亂,這個安放的方法,就叫數據結構。
有代表性的數據結構:
數組:連續無間隙排列的數據結構叫做數組。線性排列的是一維數組,像長方形一樣橫豎排列的是二維數組,像立方體一樣排列的是三維數組。
鏈表:數據按照順序排列的數據結構叫做鏈表。鏈表中的數據可以遠距離存放,數據是在鏈表的箭頭連接的結點中順序管理的。
棧:類似於在桌上堆書一樣來管理數據的數據結構叫做棧。棧是一種與數據輸入順序相反逆序輸出的數據管理方式。
隊列:如同超市收銀隊列一樣的數據結構叫做隊列。隊列是數據輸出順序與數據輸入順序一致的數據管理方式。
樹:像倒置的樹枝一樣的分叉的數據結構。
全手打,我想應該說的夠清楚了,希望樓主不要糾結課本上那些字面的意思,展開聯想,全局把握。最後最重要的,請採納,謝謝。
⑺ 數據結構(java)問題:隊列顛倒 假設現在需要將一個隊列中的元素順序顛倒,只使用隊列操作。要
//雙向隊列可以嗎?如果Deque不讓用,那就麻煩了,代碼又丑。
//Concole:
//c
//b
//a
importjava.util.Deque;
importjava.util.LinkedList;
importjava.util.Queue;
publicclassQ{
publicstaticvoidmain(String[]args){
Deque<String>srcQ=newLinkedList<String>();
Deque<String>destQ=newLinkedList<String>();
srcQ.offer("a");
srcQ.offer("b");
srcQ.offer("c");
Q.reverse(srcQ,destQ);
for(Strings:destQ){
System.out.println(s);
}
}
publicstatic<T>voidreverse(Deque<T>src,Deque<T>dest){
while(src.size()>0){
dest.offer(src.pollLast());
reverse(src,dest);
}
}
}
⑻ 數據結構問題。做隊列顛倒。
直接像字元串交換那樣,將隊列交換。