- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【数据结构练习习题】java实现版(⼀)
练习⽬录
仅⽤递归函数和栈操作逆序⼀个栈不能⽤其他数据结构
思路:设计两个递归函数,其中⼀个⽤于得到栈底的元素,另⼀个⽤于依次逆序栈,最后可得到⼀个新栈
先设计⼀个递归函数将栈的栈底元素返回并移除
//
public static int getAndRemoveLast(StackIntegerstack)
{
int result = stack.pop();
if(stack.empty()) return result ;
else
{
int last=getAndRemoveLast(stack);
stack.push(result);
return last ;
}
}
递归函数
// 2
public static void reverse(StackIntegerstack)
{
if(stack.empty())return;
else{
int i = getAndRemoveLast(stack);
reverse(stack);
stack.push(i);
}
}
函数⼀过程:
注意递归函数中递归和push的顺序,函数⼆先调⽤取栈底的函数,再调⽤⾃⾝
函数⼆过程:
⼀个栈中元素的类型为整型,现在想将该栈从顶到底按从⼤到⼩的顺序排序,只许申请⼀个
栈。
除此之外,可以申请新的变量,但不能申请额外的数据结构。如何完成排序?
【难度】 ⼠ ★☆☆☆
【解答】 将要排序的栈记为stack,申请的辅助栈记为help。在stack上执⾏pop操作,弹出的元素记为cur。 如果cur⼩于或等于help的栈
顶元素,则将cur直接压⼊help;如果cur⼤于help的栈顶元素,则将help的元素逐⼀弹出,逐⼀压⼊stack,直到cur⼩于或等于help的栈
顶元素,再将cur压⼊help。 ⼀直执⾏以上操作,直到stack中的全部元素都压⼊到help。最后将help中的所有元素逐⼀压⼊stack,即完
成排序。
(⾃⼰写的):
StackIntegerhelp=new StackInteger();
while(!stack.empty())
{
if(help.empty())
help.push(a);
else if(help.peek()=a)help.push(a);
else {
while(!help.empty())
{
int b=help.pop();
stack.push(b);
if(b =a ||help.empty()) {
help.push(a);
break;
}
}
}
题解的:(简洁很多)
public static void sortStack(StackIntegerstack)
{
StackIntegerhelp=new StackInteger();
while(!stack.empty())
{
int a =stack.pop();
while(!help.empty() help.peek()a)
stack.push(help.pop());
其他情况都推⼊
help.push(a);// help
while(!help.empty())
最后把 的元素都推⼊原
stack.push(help.pop());// help
您可能关注的文档
- 学风建设知识问答题(最终版) .pdf
- 2019学年七年级下学期数学期中考试模拟试卷含解析 .pdf
- 高级插花师练习题库含答案 .pdf
- 五年高考试题总汇编---化学平衡 .pdf
- 电子技术基础期末考试卷 .pdf
- 运动控制系统复习题 .pdf
- 山东省莱西市第二中学2020-2021学年高二下学期期中模拟数学试题精品.pdf
- 农业生态学复习资料答案9 .pdf
- 2020年《行政诉讼法》知识竞赛题库及答案 .pdf
- 《煤矿安全规程》考试复习题及答案 .pdf
- GB/Z 10062.20-2025锥齿轮承载能力计算方法 第20部分:胶合承载能力计算 闪温法.pdf
- 中国国家标准 GB/Z 10062.20-2025锥齿轮承载能力计算方法 第20部分:胶合承载能力计算 闪温法.pdf
- 《GB/T 46713.1-2025轨道交通 机车车辆 辅助供电系统蓄电池 第1部分:通用要求》.pdf
- GB/T 46713.1-2025轨道交通 机车车辆 辅助供电系统蓄电池 第1部分:通用要求.pdf
- 中国国家标准 GB/T 46713.1-2025轨道交通 机车车辆 辅助供电系统蓄电池 第1部分:通用要求.pdf
- 《GB 19079.19-2025体育场所开放条件与技术要求 第19部分:拓展场所》.pdf
- 中国国家标准 GB 19079.19-2025体育场所开放条件与技术要求 第19部分:拓展场所.pdf
- GB 19079.19-2025体育场所开放条件与技术要求 第19部分:拓展场所.pdf
- GB/T 4937.25-2025半导体器件 机械和气候试验方法 第25部分:温度循环.pdf
- 中国国家标准 GB/T 4937.25-2025半导体器件 机械和气候试验方法 第25部分:温度循环.pdf
原创力文档


文档评论(0)