二叉树,数据结构.★实验任务排队买火车票是一件困惑的事,尤其是在春节、国庆等长假.假设一列队伍有N个人(从前往后编号为1、2…N),每个人有一个rp值,对于编号为p的人,小明想计算排在
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 07:33:24
二叉树,数据结构.★实验任务排队买火车票是一件困惑的事,尤其是在春节、国庆等长假.假设一列队伍有N个人(从前往后编号为1、2…N),每个人有一个rp值,对于编号为p的人,小明想计算排在
二叉树,数据结构.
★实验任务
排队买火车票是一件困惑的事,尤其是在春节、国庆等长假.假设一列队伍有N个
人(从前往后编号为1、2…N),每个人有一个rp值,对于编号为p的人,小明想计
算排在他前面人中rp值比他高的人数p(a),以及整个队列中rp值比他高的人数p(b).
★数据输入
输入第一行包括一个正整数N(1
二叉树,数据结构.★实验任务排队买火车票是一件困惑的事,尤其是在春节、国庆等长假.假设一列队伍有N个人(从前往后编号为1、2…N),每个人有一个rp值,对于编号为p的人,小明想计算排在
我刚刚写的作业 呵呵
#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>
#define OVERFLOW 0
//二叉树的二叉链表存储定义
struct Node
{
char data;
struct Node * lchild, * rchild;
};
typedef struct Node BiTNode;
typedef BiTNode * BiTree;
//
void CreateBiTree(BiTree &T)
{
char ch;
scanf("%c", &ch); // * 按先序次序输入二叉树中的结点的值(一个字符)构造二叉链表表示的二叉树,
if (ch=='#') T=NULL; // * 字符'#'表示空树
else{
if (!(T = (BiTNode *)malloc(sizeof(BiTNode)))) exit(OVERFLOW);
T->data = ch;
CreateBiTree(T->lchild);
CreateBiTree(T->rchild);
}
return;
}//CreateBiTree
void PreOrderTraverse(BiTree T)
{
//按先序遍历次序输出二叉树T中的结点的值(一个字符),二叉树T用二叉链表存储.
if (T)
{
cout<<T->data;
PreOrderTraverse(T->lchild);
PreOrderTraverse(T->rchild);
}
return;
}//PreOrderTraverse
void InOrderTraverse(BiTree T)
{
//按中序遍历次序输出二叉树T中的结点的值(一个字符),二叉树T用二叉链表存储.
if (T)
{
InOrderTraverse(T->lchild);
cout<<T->data;
InOrderTraverse(T->rchild);
}
return;
}//InOrderTraverse
void PostOrderTraverse(BiTree T)
{
//按后序遍历次序输出二叉树T中的结点的值(一个字符),二叉树T用二叉链表存储.
if (T)
{
PostOrderTraverse(T->lchild);
PostOrderTraverse(T->rchild);
cout<<T->data;
}
return;
}//PostOrderTraverse
void main()
{
BiTree T=NULL;
cout << "请按先序顺序输入二叉树中的结点(其中,'#'表示空树):" <<endl;
CreateBiTree(T);
cout << endl;
cout << "先序遍历该二叉树得到的序列为:" <<endl;
PreOrderTraverse(T);
cout << endl <<endl;
cout << "中序遍历该二叉树得到的序列为:" <<endl;
InOrderTraverse(T);
cout << endl <<endl;
cout << "后序遍历该二叉树得到的序列为:" <<endl;
PostOrderTraverse(T);
cout << endl <<endl;
return;
}