寄信人: Fll (沧海一声笑)
标 题: Re: 请教哪位大侠1115题的算法?
发信站: 郁金香BBS站 (2005年04月26日13:38:58 星期二)
来 源: 郁金香BBS站
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct node{
char key[30];
int len;
struct node *lchild,*rchild;
}BSTtree;
void insertBST(BSTtree *bt,char k[])
{
BSTtree *f,*p=bt;
while(p!=NULL){
if(strcmp(k,p->key)==0){p->len++;return;}
f=p;
if(strcmp(p->key,k)==1) p=p->lchild;
else p=p->rchild;
}
p=(BSTtree *)malloc(sizeof(BSTtree));
strcpy(p->key,k);
p->len=1;
p->lchild=p->rchild=NULL;
if(bt==NULL) bt=p;
else if(strcmp(f->key,k)==1) f->lchild=p;
else f->rchild=p;
}
void inorder(BSTtree *bt,int n)//中序遍历的递归算法
{
if(bt!=NULL){
inorder(bt->lchild,n);
printf("%s ",bt->key);
printf("%.4lf/n",100.0*bt->len/n);
inorder(bt->rchild,n);
}
}
int main()
{
BSTtree *bt=NULL;
int n=0;
char k[30]={'/0'};
while(gets(k)){
//if(k[0]=='0') break;
n++;
insertBST(bt,k);
memset(k,'/0',sizeof(k));
}
inorder(bt,n);
return 0;
}
【 在 aaaaatiger (线段树) 的大作中提到: 】
: 终于see了一点。呵呵。
: 这样这个并查集的树根就应该是下一个位置的存储位置,是不是啊?
: 【 在 GreenSky (CS02.|还有什么能失去的?!) 的大作中提到: 】
: : 那个用来记录下一个位置是哪里的部分就可以用并查集实现嘛
--
江湖是落英缤纷的世外桃源
江湖是快意恩仇的刀光剑影