爪哇2博客
爪哇2博客

使用另一个堆栈对堆栈进行排序

如果您想练习数据结构和算法程序,可以通过 100多种数据结构和算法程序.

在这篇文章中,我们将看到如何使用另一个堆栈对堆栈进行排序。

问题

给定堆栈,您需要在临时的帮助下对其进行排序 .

解决方案:

  • 让’s say,  you have two 叠s, and 临时堆栈.
  • Pop an element currentData from and compare it with head of 临时堆栈.
  • If currentData it greater, 推 it to 临时堆栈.
  • If currentData is lesser than  head of 临时堆栈, 流行音乐 an element from 临时堆栈 and 推 it to until you get the element which is greater than currentData
  • In the end, 临时堆栈 will be sorted 叠.

爪哇代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
上市 静态的 StackCustom sortStack(StackCustom )
{
StackCustom 临时堆栈 = StackCustom(10);
(!.是空的())
{
整型 currentData=.流行音乐();
(!临时堆栈.是空的() && 临时堆栈.窥视() > currentData) {
.(临时堆栈.流行音乐());
}
临时堆栈.(currentData);
}
返回 临时堆栈;
}
 

使用附加堆栈对堆栈进行排序的完整Java程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
 
组织.Arpit.爪哇2blog;
/ **
* @作者Arpit Mandliya
* /
上市 StackCustom {
整型 尺寸;
整型 rr[];
整型 最佳;
 
StackCustom(整型 尺寸) {
这个.尺寸 = 尺寸;
这个.rr = 整型[尺寸];
这个.最佳 = -1;
}
 
上市 虚空 (整型 推Element) {
如果 (!已满()) {
最佳++;
rr[最佳] = 推Element;
} 其他 {
系统..打印(“堆栈已满!”);
}
}
 
上市 整型 流行音乐() {
如果 (!是空的()) {
整型 返回顶部 = 最佳;
最佳-;
返回 rr[返回顶部];
 
} 其他 {
系统..打印(“堆栈是空的!”);
返回 -1;
}
}
 
上市 整型 窥视() {
返回 rr[最佳];
}
 
上市 布尔值 是空的() {
返回 (最佳 == -1);
}
 
上市 布尔值 已满() {
返回 (尺寸 - 1 == 最佳);
}
 
上市 静态的 虚空 主要([] args) {
StackCustom 叠Custom = StackCustom(10);
系统..打印(“ == ===============”);
叠Custom.(10);
叠Custom.(30);
叠Custom.(50);
叠Custom.(40);
叠Custom.printStack(叠Custom);
StackCustom sortedStack=sortStack(叠Custom);
系统..打印(“ == ===============”);
系统..打印(“排序后:”);
系统..打印(“ == ===============”);
sortedStack.printStack(sortedStack);
 
}
 
//使用另一个堆栈对堆栈进行排序
上市 静态的 StackCustom sortStack(StackCustom )
{
StackCustom 临时堆栈 = StackCustom(10);
(!.是空的())
{
整型 currentData=.流行音乐();
(!临时堆栈.是空的() && 临时堆栈.窥视() > currentData) {
.(临时堆栈.流行音乐());
}
临时堆栈.(currentData);
}
返回 临时堆栈;
}
 
上市  虚空 printStack(StackCustom )
{
如果(最佳>=0)
{
系统..打印(“堆栈的元素是:”);
对于 (整型 i = 0; i <= 最佳; i++) {
系统..打印(rr[i]);
}
}
 
}
}
 

当您在程序上方运行时,将获得以下输出

== == =============
堆栈的元素是:
10
30
50
40
== == =============
排序后:
== == =============
堆栈的元素是:
10
30
40
50

那’关于如何使用另一个堆栈对堆栈进行排序的所有内容


导入联系人

您可能还喜欢:

分享这个

作者

关注作者

相关文章

  • 11月29日

    超过100个Java编码面试问题

    我一直在发布有关各种主题的数据结构和编码面试问题,例如数组,队列,堆栈,二叉树,LinkedList,字符串,数字,ArrayList等。因此,我合并了一系列Java编码面试问题以创建索引发布。每当我添加新的Java [时,我都会继续添加指向此帖子的链接[…]

  • 4月18日

    到达最后一个索引的最小跳转数

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将看到如何找到到达上一个索引的最小跳转数。问题给定一个正整数数组A(可能为零),每个索引表示[…]

  • 3月28日

    对0、1和2的数组进行排序

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将看到如何对0、1和2s的数组进行排序。我们已经看到了有关对数组中的0s和1s进行排序的文章。问题给定一个包含零的数组,[…]

  • 3月04

    通过跳转检查是否有可能到达给定数组的末尾

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。问题给定一个具有正整数作为元素的数组,该数组指示可以从数组中任何位置进行跳转的最大长度。检查是否可以[…]

  • 2月17日

    检查数组元素是否连续

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将看到如何检查数组元素是否连续。问题给定一个数组,我们需要检查数组是否包含连续的元素。例如:输入:array [] = {5,3,4,[…]

  • 2月04日

    O(Sqrt(height))中的K元树的LCA

    如果您想练习数据结构和算法程序,可以阅读100多种数据结构和算法程序。在这篇文章中,我们将了解如何在O(Sqrt(height))中找到K元树的最低公共祖先。我们已经看到了如何在O(n)复杂度中找到n元树的LCA。给定[…]

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

订阅我们的新闻

获取质量教程到您的收件箱。现在订阅。


让’s be Friends

©2020 爪哇2博客