数据结构
天涯with0
这个作者很懒,什么都没留下…
展开
-
7-3 树的同构(25 分)
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 图1 图2 现给定两棵树,请你判断它们是否是同构的。 输入格式: 输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤...转载 2018-08-08 15:35:59 · 276 阅读 · 0 评论 -
7-1 是否同一棵二叉搜索树(25 分)
给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。 输入格式: 输入包含若干组测试数据。每组数据的第1行给出两个正整数N (≤10)和L,分别是每个序列插入元素的个数和需要检...原创 2018-08-07 15:57:45 · 1587 阅读 · 0 评论 -
二叉搜索树的操作集
#include <stdio.h> #include <stdlib.h> typedef int ElementType; typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTr...原创 2018-08-06 15:19:40 · 97 阅读 · 0 评论 -
7-8 逆波兰表达式求值(20 分)
7-8 逆波兰表达式求值(20 分)提问 逆波兰表示法是一种将运算符(operator)写在操作数(operand)后面的描述程序(算式)的方法。举个例子,我们平常用中缀表示法描述的算式(1 + 2)*(5 + 4),改为逆波兰表示法之后则是1 2 + 5 4 + *。相较于中缀表示法,逆波兰表示法的优势在于不需要括号。 请输出以逆波兰表示法输入的算式的计算结果。 输入格式: 在一行中输入1...原创 2018-07-28 18:06:40 · 2136 阅读 · 0 评论 -
前序和中序还原二叉树
#include<stdio.h> #include<stdlib.h> struct TNode { int Data; TNode* Left; TNode* Right; }; typedef TNode* Position; typedef Position BinTree; void pstorder(BinTree T) { if(T=...原创 2018-07-31 20:21:40 · 643 阅读 · 0 评论 -
删除链表的倒数第N个节点(leetcode)
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。 示例: 给定一个链表: 1->2->3->4->5, 和 n = 2. 当删除了倒数第二个节点后,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用一趟扫描实现吗? 思路:双指针 fisrt指针先走n步,再同时和sec指针走,当f...原创 2018-09-22 15:07:42 · 152 阅读 · 0 评论