
数据结构与算法--练习
通过实际操作练习巩固
Jesslili
java小小白
展开
-
表达式求值(中缀表达式->后缀表达式)
题目:在一个表达式中,只有“(”,“)”,“0-9”,“+”,“-”,“*”,“/”,“^”,请求出表达式的值。(“/”用整数除法)。将中缀表达式转化成后缀表达式,一边转化,一边计算。基本思路:读取完字符串之后,扫描一遍,扫描一遍后,运算也同时结束,过程中将中缀表达式转化成后缀表达式,一边转化,一边计算。1.如果碰到了数字,开始往数字栈放数字(考虑多位数情况)2.如果碰到了 “(” 直接入符号栈3.如果碰到了运算符,如果其优先级大于符号栈顶元素优先级,入栈;否则,先计算符号栈顶元素和数字栈顶两转载 2020-05-13 11:34:29 · 1588 阅读 · 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 · 576 阅读 · 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 · 1278 阅读 · 0 评论 -
还原二叉树
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC 输出样例:5解析已知前序遍历和中序遍历,可以确定唯一的二...原创 2020-03-20 13:42:03 · 2939 阅读 · 1 评论 -
二叉树---树的同构
题目给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N(≤10),即该树的结点数(此时假设结点从...原创 2020-03-19 13:58:16 · 4652 阅读 · 2 评论 -
括号匹配问题
输入一个中缀表达式,判断其输入的括号是否正确匹配思路每当碰到左括号‘(’、‘[’、‘{’,将括号入栈。每当碰到右括号‘)’、‘]’、‘}’,将栈顶括号输出,判断是否与该右括号匹配。最终栈中不存在括号,即括号匹配。代码实现#include<stdio.h>#include<string.h>#define SIZE 100typedef struct{ ...原创 2020-03-18 17:02:17 · 256 阅读 · 0 评论 -
中缀表达式转后缀表达式
题目:输入在一行中给出不含空格的中缀表达式,可包含+、-、*、/ 以及左右括号(),将其转化为后缀表达式。我们习惯的数学表达式为中缀表达式,后缀表达式不含括号解析运用栈原理实现对于数字:直接输出对于符号左括号:进栈运算符:与栈顶运算符优先级进行比较若栈顶符号优先级低:此符号进栈(默认栈顶若是左括号,左括号优先级最低)若栈顶符号优先级高:将栈顶符号弹出并输出(弹出所有优先级...原创 2020-03-18 16:17:26 · 342 阅读 · 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 · 180 阅读 · 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 · 279 阅读 · 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 · 270 阅读 · 0 评论