![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构与算法--练习
通过实际操作练习巩固
Jesslili
java小小白
展开
-
表达式求值(中缀表达式->后缀表达式)
题目:在一个表达式中,只有“(”,“)”,“0-9”,“+”,“-”,“*”,“/”,“^”,请求出表达式的值。(“/”用整数除法)。 将中缀表达式转化成后缀表达式,一边转化,一边计算。 基本思路: 读取完字符串之后,扫描一遍,扫描一遍后,运算也同时结束,过程中将中缀表达式转化成后缀表达式,一边转化,一边计算。 1.如果碰到了数字,开始往数字栈放数字(考虑多位数情况) 2.如果碰到了 “(” 直接入符号栈 3.如果碰到了运算符,如果其优先级大于符号栈顶元素优先级,入栈; 否则,先计算符号栈顶元素和数字栈顶两转载 2020-05-13 11:34:29 · 1540 阅读 · 0 评论 -
合并两个有序链表
将两个有序链表(a、b)合并为一个有序链表(c),不使用额外的空间 令 c 链表的头指针 Pc 指向 a 链表的头,Pa、Pb 分别指向 a、b 链表的第一个结点 从a、b链表的第一个元素开始比较,Pc 始终指向 c 链表的最后一个元素 void MergeList_L(LinkList La,LinkList Lb,LinkList &Lc) { LinkList pa,pb...原创 2020-04-22 11:52:06 · 531 阅读 · 0 评论 -
求链表的倒数第m个元素
请设计时间和空间上都尽可能高效的算法,在不改变链表的前提下,求链式存储的线性表的倒数第m(>0)个元素。 函数接口定义: ElementType Find( List L, int m ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ P...原创 2020-03-20 16:32:36 · 1098 阅读 · 0 评论 -
还原二叉树
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。 输入格式: 输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。 输出格式: 输出为一个整数,即该二叉树的高度。 输入样例: 9 ABDFGHIEC FDHGIBEAC 输出样例: 5 解析 已知前序遍历和中序遍历,可以确定唯一的二...原创 2020-03-20 13:42:03 · 2883 阅读 · 1 评论 -
二叉树---树的同构
题目 给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 现给定两棵树,请你判断它们是否是同构的。 输入格式: 输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),即该树的结点数(此时假设结点从...原创 2020-03-19 13:58:16 · 4383 阅读 · 2 评论 -
括号匹配问题
输入一个中缀表达式,判断其输入的括号是否正确匹配 思路 每当碰到左括号‘(’、‘[’、‘{’,将括号入栈。 每当碰到右括号‘)’、‘]’、‘}’,将栈顶括号输出,判断是否与该右括号匹配。 最终栈中不存在括号,即括号匹配。 代码实现 #include<stdio.h> #include<string.h> #define SIZE 100 typedef struct { ...原创 2020-03-18 17:02:17 · 232 阅读 · 0 评论 -
中缀表达式转后缀表达式
题目:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、/ 以及左右括号(),将其转化为后缀表达式。 我们习惯的数学表达式为中缀表达式,后缀表达式不含括号 解析 运用栈原理实现 对于数字:直接输出 对于符号 左括号:进栈 运算符:与栈顶运算符优先级进行比较 若栈顶符号优先级低:此符号进栈(默认栈顶若是左括号,左括号优先级最低) 若栈顶符号优先级高:将栈顶符号弹出并输出(弹出所有优先级...原创 2020-03-18 16:17:26 · 310 阅读 · 0 评论 -
最大子列和问题
题目来自PTA 给定K个整数组成的序列{ N1, N2, …, NK },“连续子列”被定义为{ Ni, Ni+1, …, Nj },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列...原创 2020-03-18 13:36:36 · 158 阅读 · 0 评论 -
求二叉树高度
题目来自于PTA 函数接口定义: int GetHeight( BinTree BT ); 其中BinTree结构定义如下: typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; }; ...原创 2020-03-18 12:57:07 · 243 阅读 · 0 评论 -
单链表的逆转
题目来自PTA 裁判测试程序样例: 不使用额外的节点存储空间做中转 L是给定单链表,函数Reverse要返回被逆转后的链表。 #include <stdio.h> #include <stdlib.h> typedef int ElementType; typedef struct Node *PtrToNode; struct Node { ElementTyp...原创 2020-03-18 12:21:06 · 248 阅读 · 0 评论