⑴ 如何使一个队列倒置
最简单的方法是利用一个临时栈来实现,所有元素出队列后都进栈,然后所有元素出栈再进队列;如果是用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);
}
}
}
⑻ 数据结构问题。做队列颠倒。
直接像字符串交换那样,将队列交换。