文章

16

粉丝

76

获赞

3

访问

9.9k

头像
二叉搜索树 题解:C++
P1317 浙江大学机试题
发布于2024年3月17日 20:07
阅读数 720

#include <bits/stdc++.h>
using namespace std;
typedef struct node{
    char data;
    struct node *lchild,*rchild;
}*BiTree,BiTnode;
//构建二叉排序树
void InsertBitree(BiTree &T,char data){
    if(T==NULL){
        T=new node;
        T->data=data;
        T->lchild=NULL;
        T->rchild=NULL;
        return;
    }
    if(data<=T->data)
        InsertBitree(T->lchild,data);
    else
        InsertBitree(T->rchild,data);
}
int cnt=0;//记录先序字符串的下标
//将字符先序存入字符串中
void PreOrder(BiTree T,string &s){
    if(T!=NULL){
        s[cnt++]=T->data;
        PreOrder(T->lchild,s);
        PreOrder(T->rchild,s);
    }
}
int main(){
    int n;
    while(cin>>n){
        if(n==0) return 0;
        int len=0;//记录主串的长度
        string s,spre;//spre记录主串前序输出的之后的字符串
        cin>>s;
        len=s.length();
        BiTree T=NULL;
        for(int i=0;i<len;i++){
            InsertBitree(T,s[i]);
        }
        P...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发