- 博客(63)
- 收藏
- 关注
原创 中缀转前缀
这个程序首先定义了一个栈结构,并实现了栈的基本操作。然后使用了一个函数infixToPrefix来将中缀表达式转换为前缀表达式。最后在main函数中接收用户输入的中缀表达式,并输出转换后的前缀表达式。
2023-11-27 19:57:43
508
原创 平衡二叉树的高度的计算
多组数据,每组数据一行,为平衡二叉树的先序序列。输入的数字为该节点的平衡因子。当序列为“#”时,输入结束。假设一棵平衡二叉树的每个结点都标明了平衡因子b,设计一个算法,求平衡二叉树的高度。每组数据输出一行,为平衡二叉树的高度。
2023-03-19 17:24:18
600
原创 263 基于二叉链表的树结构相等的判断
设二叉树中每个结点的元素均为一个字符,按先序遍历的顺序建立二叉链表,按此方法创建两棵二叉树,然后编写递归算法判断这两棵树是否相等。多组数据,每组数据有两行。每行为一个二叉树的先序序列(序列中元素为‘0’时,表示该结点为空)。当输入只有一个“0”时,输入结束。若两个二叉树相等输出“YES”,否则输出“NO”。
2023-03-17 21:04:29
819
原创 BJFU 259字符串的插入(可用单链表进行插入)
t,int pos)将字符串t插入到字符串s中,插入位置为pos(插在第pos个字符前)。假设分配给字符串s的空间足够让字符串t插入。(说明:不得使用任何库函数)多组数据,每组数据有三行,第一行为插入的位置pos,第二行为要被插入的字符串s,第三行为待插入的字符串t。当pos为“0”时输入结束。编写算法,实现下面函数的功能。函数void insert(char。对于每组数据输出一行,为t插入s后的字符串。
2023-03-17 17:35:49
244
原创 BJFU 254中缀表达式转化为后缀表达式(直接调用了stack相关方法)
【代码】BJFU 254中缀表达式转化为后缀表达式(直接调用了stack相关方法)
2023-03-17 11:43:22
169
原创 BJFU 253递归求解单链表中的平均值【采用:递归求和 最后一步求平均值】
【代码】BJFU 253递归求解单链表中的平均值【采用:递归求和 最后一步求平均值】
2023-03-16 19:52:49
125
原创 BJFU 252递归求解单链表中的结点个数
多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n=0时输入结束。利用单链表表示一个整数序列,利用递归的方法计算单链表中结点的个数。对于每组数据分别输出一行,对应链表中的各个结点个数.for(int i=0;i++){ //建表。if(L->next==NULL) //退出条件。//尾插建表(带头结点)
2023-03-16 19:29:20
474
原创 BJFU 248基于两端操作的循环队列的实现(与246相区别 本质就是入队时操作稍作改变***)
多组数据,每组数据有两行。第一行为一个整数n,n表示入队序列A的长度(n个数依次连续入队,中间没有出队的情况),第二行为序列A(空格分隔的n个整数)。当n等于0时,输入结束。如果允许在循环队列的两端都可以进行插入和删除操作。构造一个循环队列,实现从队头入队,从队尾出队并输出。约定从队头入队时向下标小的方向发展,从队尾入队时则向下标大的方向发展。对应每组数据输出一行。依次输出队列中所有的整数,每两个整数之间用空格分隔。
2023-03-16 17:33:08
318
原创 BJFU 244基于栈的后缀算术表达式求值(要特别注意输入问题!!因为空格的输入卡了好久)
后缀表达式的基本思想:只要遇见了字符,就取出栈的两个数据进行运算。
2023-03-16 11:12:38
242
原创 BJFU 243入栈和出栈的基本操作(编译错误 未能处理 希望有大佬指正)
【代码】BJFU 243入栈和出栈的基本操作(编译错误 未能处理 希望有大佬指正)
2023-03-15 20:55:02
451
原创 BJFU 242基于栈的回文字符序列判断 (接上题 *手写stack相关函数)
回文序列是正反读均相同的字符序列,如“abba”和“abdba”均是回文,但是“good”不是回文。请设计一个算法判定给定的字符序列是否为回文。多组数据,每组数据有一行。每一行为一个长度不定的字符序列A。当A为“0”时,输入结束。对于每组数据输出一行。若字符序列A是回文序列,则输出“YES”,否则输出“NO”。
2023-03-15 18:41:46
129
原创 BJFU 242基于栈的回文字符序列判断(直接调用stack功能)
【代码】BJFU 242基于栈的回文字符序列判断(直接调用stack功能)
2023-03-15 18:08:36
200
1
原创 BJFU 240基于栈的中缀算术表达式求值***
输入一个中缀算术表达式,求解表达式的值。运算符包括+、-、*、/、(、)、=,参加运算的数为double类型且为正数。(要求:直接针对中缀算术表达式进行计算,不能转换为后缀或前缀表达式再进行计算,只考虑二元运算即可。多组数据,每组数据一行,对应一个算术表达式,每个表达式均以“=”结尾。当表达式只有一个“=”时,输入结束。参加运算的数为double类型。对于每组数据输出一行,为表达式的运算结果。
2023-03-15 15:01:40
276
原创 BJFU 238查找两个单词链表共同后缀的起始结点
多组数据,每组数据有三行,第一行为链表str1和str2的长度n和m,第二行为链表str1的n个元素,第三行为链表str2的m个元素(元素之间用空格分隔)。n=0且m=0时输入结束。浅谈思路:当输入的两个字符链表不等长时,遍历将长的链表指针指向与短链表等长位置,eg. c1指针指向loading的字母a c2指针指向being的字母b。转换成等长字符串的比较。对于每组数据输出一行,为共同后缀的起始位置结点对应的字符。
2023-03-13 15:39:39
859
原创 BJFU 237求解两个升序序列的中位数
一个长度为L(L≥1)的升序序列S,处在第L/2(若为小数则去掉小数后加1)个位置的数称为S的中位数。例如,若序列S1=(11,13,15,17,19),则S1的中位数是15。例如,若S2=(2,4,6,8,20),则S1和S2的中位数是11。现有两个等长升序序列A和B,试实现一个在时间和空间两方面都尽可能高效的算法,找出两个序列A和B的中位数。多组数据,每组数据有三行,第一行为序列的长度n,第二行为序列A的n个元素,第三行为序列B的n个元素(元素之间用空格分隔)。当n=0时输入结束。
2023-03-13 14:50:14
295
原创 BJFU 236删除链表中绝对值相等的结点
多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔)。当n=0时输入结束。利用单链表表示一个整数序列,实现一个时间复杂度为O(n)的算法,对于链表中绝对值相。对于每组数据分别输出一行,依次输出删除结点后的链表元素,元素之间用空格分隔。等的结点,仅保留第一次出现的结点而删除其余绝对值相等的结点。
2023-03-13 11:33:56
613
1
原创 BJFU 235查找链表中倒数第k个结点
利用单链表表示一个整数序列,请实现一个时间复杂度为O(n)、空间复杂度为O(1)的算法,通过一趟遍历在单链表中确定倒数第k个结点。多组数据,每组数据有三行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔),第三行为k。当n=0时输入结束。对于每组数据分别输出一行,输出每个链表的倒数第k个结点对应的数值。
2023-03-13 10:51:50
86
原创 BJFU 234删除顺序表中指定值的所有元素
多组数据,每组数据有三行,第一行为顺序表的长度n,第二行为顺序表的n个元素(元素之间用空格分隔),第三行为待删除的元素的值item。当n=0时输入结束。利用顺序表表示一个包括n个整数的序列,请实现一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法可以删除表中所有值为item的元素。对于每组数据分别输出一行,依次输出删除值为item的元素后顺序表中的剩余元素,元素之间用空格分隔。
2023-03-13 10:41:23
470
原创 BJFU 232删除链表中满足区间值的结点
利用单链表表示一个递增的整数序列,删除链表中值大于等于mink且小于等于maxk的所有元素(mink和maxk是给定的两个参数,其值可以和表中的元素相同,也可以不同)。多组数据,每组数据有两行,第一行为链表的长度n,第二行为链表的n个元素(元素之间用空格分隔),第三行为给定的mink和maxk(用空格分隔)。当n=0时输入结束。对于每组数据分别输出一行,依次输出删除元素后的链表元素,元素之间用空格分隔。
2023-03-13 10:33:55
176
原创 BJFU 229链表的分解 【用原始链表L1存储正数 新建队列存储负数】
【代码】BJFU 229链表的分解 【用原始链表L1存储正数 新建队列存储负数】
2023-03-12 20:09:38
75
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人