📄 subinform.cpp
字号:
#include"Tree.h"
void addmember(List* &head,memberTree * &root,int n)
{
Stack S=InitStack();
memberTree *s=new memberTree;
s->parent=NULL;
s->child=NULL;
s->brother=NULL;
memberTree *r=new memberTree;
//memberTree *h1;
memberTree *h2;
int last;
r=root;
s->data=n;
//判断该节点是否已存在
last =totalnum( r);
if(n<=last)
{
cerr<<"此成员已存在."<<endl;
return ;
}
else
{
cout<<"请输入成员父亲的序列号:"<<endl;
s->parent=new memberTree;
cin>>s->parent->data;
}
//判断该节点的父节点是否存在
h2 =PreOrdermemberTree(S,r,s->parent->data);
if(h2==NULL)
{
cerr<<"此成员的父亲不存在."<<endl;
return ;
}
else
{
s->parent=h2;
if(h2->child==NULL)
{
h2->child=new memberTree;
h2->child=s;
}
else
{
h2=h2->child;
while(h2->brother!=NULL)
{
h2=h2->brother;
}
h2->brother=new memberTree;
h2->brother=s;
}
}
}
memberTree* findmember(memberTree *root,int n)
{
Stack S=InitStack();
memberTree *T;
T=root;
while(T||S.base!=S.top)
{
if(T)
{
if(T->data!=n)
{
Push(S,T);
T=T->child;
}
else
{
return T;
}
}
else
{
T=Pop(S);
T=T->brother;
}
}
return T;
}
void deleteInformation(Queue &Q,List* &head,int n)
{
Queue *q=new Queue;
Queue *p=new Queue;
for(p=Q.front,q=Q.front->next;q!=Q.rear->next && q;p=q,q=q->next)
{
if(q->node->MemberNumber==n)
{
p->next=q->next;
delete q;
cout<<"成员信息已经被删除!"<<endl;
return;
}
if(p==Q.rear)
cout<<"成员信息不存在!"<<endl;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -