- 博客(5)
- 收藏
- 关注
原创 判别算术表达式括号配对
使用“cin >> str”输入,后来发现str一旦遇到空格就不会读取后面的表达式,即表达式不完整。使用gets函数也可以,但可能会用警告,因为gets函数原型为: char *gets(char *str),而我们定义的字符串不是指针型的。括号配对的表达式的左右括号对称,根据这一性质,我们可以将左括号压入堆栈,碰到右括号时判断栈顶元素和该右括号是否匹配,匹配成功则将栈顶元素出栈,失败则标志flag为0,直接退出循环。PS:指针字符其实我自己也不太清楚,我在原代码基础上改了一点后,变成运行时错误了。
2024-05-31 13:15:53 386
原创 Dijkstra(迪杰斯特拉)算法求最短路径
住了一段时间后,他们对当地的交通还是不太了解,有时很郁闷,想去一个地方又不知道应该乘什么公交车,在什么地方转车,在什么地方下车。定义S集合和U集合,每次循环一遍,找到U集合中dist数组中最小值点k加入到S集合中,比较起点是否能通过从起点到k再到终点找到更短的路径,若找得到则更新dist和path数组。本文为简化代码选择结构体,有时间的话会补充类的代码。后续:虽然偶尔会迷路,但是因为有了你的帮助,张三和李四从此还是过上了幸福的生活。接着有n行,每行有站名s,站名e,以及从s到e的时间整数t(
2024-05-22 16:10:08 264
原创 线索二叉树的创建与销毁(C++数据结构)
建立线索链表,实质上就是将二叉链表中的空指针改为指向前驱或后继的线索,而前驱或后继的信息只有在遍历该二叉树时才能得到。给定扩展二叉树的前序序列,构建二叉树。然后为这棵二叉树建立中序线索链表,并利用线索链表输出中序遍历结果。利用线索二叉树输出树的中序遍历序列,并且按照中序顺序输出销毁线索二叉树的过程。
2024-04-03 11:37:47 197
原创 NOI/1.5编程基础之循环控制*数1的个数*
计算机之所以称为计算机也是有原因的呢,计算能力十分强大,对于这个题的要求——n<=10000完全可以采用一重循环从1到n遍历一遍,然后得到每一个数中‘1’的个数,累加起来即可得到结果。例如当n=2时,写下1,2。当n=12时,写下1,2,3,4,5,6,7,8,9,10,11,12。给定一个十进制正整数n,写下从1到n的所有整数,然后数一下其中出现的数字“1”的个数。对了,noi上下一题41:数字统计和这个非常类似,参照一样的思路可以解答。一个正整数,即“1”的个数。
2024-01-08 23:33:23 415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人