
数据结构习题
吃喵喵酱的花椒
这个作者很懒,什么都没留下…
展开
-
杨辉三角形(C++)(数据结构习题)
1.递归法,递归最重要的就是找数学规律(假设行和列都从0开始计数)#include<bits/stdc++.h>using namespace std;int yue(int n, int k){ return (k == 0 || k == n) ? 1 : (yue(n - 1, k - 1) + yue(n - 1, k));}int main(){ int x, y; while (1) { cin >> x >> y; cou原创 2021-07-15 12:09:07 · 252 阅读 · 0 评论 -
进制转换(C++)
为了简化代码,只考虑10以内的进制转化大于10的进制转换只需要在输出的时候加判断语句,例如if(top()==10)cout<<“A”;(注意栈顶元素返回和出栈的区分,前者只是返回一个值,栈顶指针没有变化。如果在if(top()==10) 里用出栈来得到栈顶元素,即使判断不对,栈顶元素也出栈了,进入下一条判断语句的栈顶元素就不是上一个栈顶元素了)第一种方法:栈因为进制转换的方法很契合栈的先进后出的特点,所以用栈来写,总体思路把计算出来的数都压入栈,最后再把栈中的元素全部输出#in原创 2021-07-14 19:27:50 · 305 阅读 · 0 评论 -
有n个元素依次进栈,输出出栈可能的序列数(C++)
参考:https://blog.youkuaiyun.com/qq_26286193/article/details/80216479以第一个为参照 :(不妨假设第一个为A,总元素数为n)A第一个出栈:剩下n-1个元素再排列出栈次序A第二个出栈:前面一个元素排列出栈次序(显然排列总数为1),剩下n-2个元素再排列出栈次序A第三个出栈:前面二个元素排列出栈次序(显然排列总数为2),剩下n-3个元素再排列出栈次序…所以得到规律:#include<bits/stdc++.h>using name转载 2021-07-14 16:20:39 · 2469 阅读 · 0 评论 -
简易计算器
刚学了栈和队列,里面讲到栈的应用提到了这个,尝试写了一下这里只考虑了非常简单的情况:1.输入一定合法2.数据长度只有1并且都是整型3.只考虑加减乘除,不考虑带括号的情况总体思路是把输入全当成字符串,运用了一点算符优先法#include<bits/stdc++.h>using namespace std;int op(char a)//根据符号的不同返回不同的优先级等级{ if (a == '+' || a == '-') { return 1;..原创 2021-07-11 17:44:48 · 93 阅读 · 0 评论 -
循环链表解决约瑟夫环问题(C++)
主体思路:创建一个循环链表,每个节点储存的数据表示他们的位置,每出去一个就删除一个节点,并且将链表大小减一,当链表只剩一个节点时,终止循环注意的点:1.因为删除要找上一个节点,所以是m-12.因为在本题中只需要输出对应元素就好了,所以不需要更改尾指针,没有必要#include<bits/stdc++.h>using namespace std;class node{public: node* next; int data; node(int a) { data = a原创 2021-07-14 12:16:06 · 2009 阅读 · 0 评论