• 大小: 3KB
    文件类型: .cpp
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: C/C++
  • 标签:

资源简介

二叉排序树实现的学生管理 有创建插入 删除 查找等功能

资源截图

代码片段和文件信息

#include
#include
#include
#include

typedef struct
{
long num;
char name[20];
char sex;
float cheng;
}std;

typedef struct binode
{
std data;
binode *lc*rc;
}binode*bitree;

long search(bitree Tlong nbitree fbitree &p)
{
if(!T)
{
p=f;
return 0;
}
else if(n==T->data.num)
{
p=T;
return 1;
}
else if(ndata.num)
return search(T->lcnTp);
else
return search(T->rcnTp);
}

long insert(bitree &Tstd e)
{
bitree ps;
if(!search(Te.numNULLp))
{
s=new binode;
s->data=e;
s->lc=s->rc=NULL;

if(!p){
T=s;
return 1;
}
else if(e.numdata.num)
p->lc=s;
else
p->rc=s; 
}
}


void creat(bitree &Tlong n)
{   
char a;
long i;
std e;
for(i=1;i<=n;i++)
{
printf(“请输入第 %d个学生的学号、姓名、成绩、性别(f/m):“i);
scanf(“%ld%s%f%c%c“&e.nume.name&e.cheng&a&e.sex);
getchar();
insert(Te);
}
}


void dele(bitree &p)
{
bitree qs;
q=new binode;
if(!p->lc)
{
q=p;
p=p->rc;
free(q);
}
else if(!p->rc)
{
q=p;
p=p->lc;
free(q);
}
else{
q=p;
s=p->lc;
while(s->rc){
q=s;
s=s->rc;
}
p->data=s->data;
if(p==q)
q->lc=s->lc;
else
q->rc=s->rc;
free(s);
}
}


long Delete(bitree &Tlong n)

if(!T)
return 0;
else if(n==T->data.num){
dele(T);
return 1;
}
else if(ndata.num)
return Delete(T->lcn);
else
return Delete(T->rcn);
}

void dis(bitree T)
{
if(T){
dis(T->lc);
printf(“%8ld%10s   

评论

共有 条评论