- 博客(15)
- 收藏
- 关注
原创 删除单链表偶数结点
函数createlist从标准输入读入一系列正整数,按照读入顺序建立单链表。当读到−1时表示输入结束,函数应返回指向单链表头结点的指针。函数deleteeven将单链表head中偶数值的结点删除,返回结果链表的头指针。
2025-05-15 23:55:19
187
原创 是否二叉搜索树
其中BinTree函数IsBST须判断给定的T是否二叉搜索树,即满足如下定义的二叉树:定义:一个二叉搜索树是一棵二叉树,它可以为空。非空左子树的所有键值小于其根结点的键值。非空右子树的所有键值大于其根结点的键值。左、右子树都是二叉搜索树。如果T是二叉搜索树,则函数返回true,否则返回false。
2025-05-10 23:57:40
543
原创 java异常处理try语块
中的代码catch后面代码也能执行,不过该异常处理是解决输入的异常处理,如果不是输入出现异常,不能与该catch匹配,还是会报错,不执行catch中的代码及catch后面代码,程序中断运行。以此类推,在写Java代码时如果有可能会出问题的语句,可以用try-catch语块来解决问题,这样就可以照常运行后面的代码,不会影响后续代码的运行。使得该程序可以处理输入不为数字的情况(要求重新输入,最后得到。修改代码:用try来处理异常,如果输入的不是数就执行。为下面的代码加入适当的异常处理。个从键盘输入的浮点数)
2025-05-08 23:52:12
276
原创 两个有序链表的合并
其中List/* 存储结点数据 */ PtrToNode Next;/* 指向下一个结点的指针 */ };/* 定义单链表类型 */L1和L2是给定的带头结点的单链表,其结点存储的数据是递增有序的;函数Merge要将L1和L2合并为一个非递减的整数序列。应直接使用原序列中的结点,返回归并后的带头结点的链表头指针。
2025-05-03 23:08:58
443
原创 二分查找[函数题]
其中List/* 保存线性表中最后一个元素的位置 */ };L是用户传入的一个线性表,其中元素可以通过>、==、<进行比较,并且题目保证传入的数据是递增有序的。函数要查找X在Data中的位置,即数组下标(注意:元素从下标1开始存储)。找到则返回下标,否则返回一个特殊的失败标记NotFound。
2025-04-29 23:59:59
298
原创 单链表的逆转
其中List/* 存储结点数据 */ PtrToNode Next;/* 指向下一个结点的指针 */ };/* 定义单链表类型 */L是给定单链表,函数Reverse要返回被逆转后的链表。
2025-04-26 21:29:22
179
原创 线性表元素的区间删除
其中List结构定义如下:/* 保存线性表中最后一个元素在数组中的位置 */ };L是用户传入的一个线性表,其中元素可以通过>、==、<进行比较;minD和maxD分别为待删除元素的值域的下、上界。函数Delete应将Data[]中所有值大于minD而且小于maxD的元素删除,同时保证表中剩余元素保持顺序存储,并且相对位置不变,最后返回删除后的表。
2025-04-24 23:37:06
313
原创 栈的应用表达式转换
一,题目算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。日常使用的算术表达式是采用中缀表示法,即二元运算符位于两个运算数中间。请设计程序将中缀表达式转换为后缀表达式。
2025-04-22 23:41:51
813
原创 用栈判断是否回文
一,本题要求编写函数,判断给定的一串字符是否为“回文”。二,判断回文就是字符串正这对和逆着读都一样,相同就是回文,不同就不是回文,栈的先进后出就可以对字符串进行逆序处理。其次根据网上搜索我的代码还可以有所改进,不用全部入栈比较,而是只处理一半长度字符进行对比。这是一开始写的代码,测试确是错的,一行一行看,就改为不用数组存字符串改用string。cout << "不是回文" << endl;cout << "是回文" << endl;我写时遇到的问题还主要是字符串处理问题,最讨厌处理字符串了。
2025-04-19 22:19:58
775
原创 约瑟夫环(Josephus Ring)
下面分析怎么找要被删除的编号的位置:根据题目编号为temp的元素删掉后,从temp+1个元素开始从1报数到m这个m的编号删除,也就是temp+m。可以总结一下,无论temp+m是否大于n要被删除的编号就是(temp+m-1)%n,对n取余,就是被删除编号的位置。其中n是数组总的元素个数,是变化的。初始化temp=0,进入while循环进行删除(跳出条件live.size()>1),temp=(temp+m-1)%live.size(),找到要删除编号的位置,live.remove(temp)删除。
2025-04-17 20:14:41
389
原创 栈的应用• PTA:银行业务队列简单模拟——循环对列解决错误
也不是因为这个方法比普通队列方法简单才写的,其实应该差不多吧,我还没有比较过,只是想把在我脑子里的思路写出来,不能让我大脑白想。原来是这样,没有判断如果前面全是偶数时然后来个奇数就无法涉及到底,我想的这个只考虑到了题目输出样例8 2 1 3 9 4 11 13 15,那这么看来要考虑到的话就要检查到底,频繁出队判断直到放在合适的位置,太复杂了。设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。
2025-04-12 21:55:42
467
原创 队列的应用• PTA:银行业务队列简单模拟
一,题目设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时间间隔,并且当不同窗口同时处理完2个顾客时,A窗口顾客优先输出。
2025-04-10 22:09:48
1774
原创 栈的应用 使用stack编写数制转换函数(十进制转二进制或十六进制)
当x小于0时,输出符号把x转为正数后续当正数处理。利用while函数当x>0时进行进制转换,引入temp=x%2,当temp<10时将temp+“0入栈sixt;当temp>10时,将temp-10+A入栈sixt,temp=temp/10进入下一次循环,直到跳出。利用while函数当X>0时将x%2入栈er再x=x/2进如下一次循环,直到跳出循环。此题运用栈先进后出的原则,存储经计算后二进制数与十六进制数,再进行出栈操作,刚好就得到了进制转换数值的正确顺序即就是数x的二进制,十六进制数值。
2025-04-08 19:18:48
1459
原创 STL中的stack、queue使用
遇到问题及解决方法:遇到主要问题就是如何输出栈底元素,刚开始想先弹出tests中元素找到栈底元素并用一个数组保存tests的元素,找到并输出栈底元素后再把数组c中栈入栈恢复找栈底元素前的tests,再进行下面的操作,但因为种种原因难以实现,就叫豆包写,看见豆包写的引入一个与之相同栈来操作的方法后,我的思路就打开了,包括后面输出剩余所有元素的操作我也用了同种方法。再输出剩余所有元素,由于后面要输出元素个数,不能改变队列,就创建一个与st相同队列d来进行输出操作,最后用st.size函数输出队列元素个数。
2025-04-05 23:30:47
1649
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅