⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subinform.cpp

📁 实现了对家谱管理系统的添加
💻 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 + -