agenda.cpp

来自「STRUCTURI DE DATE SI ALGORITMI」· C++ 代码 · 共 74 行

CPP
74
字号
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include"agenda.h"
char initiala='A';
nod* make_nod(char* a,char* b)
{
	nod* p;
	p=new nod;
	p->nume=a;
	p->tel=b;
	p->stg=0;
	p->drt=0;
	return(p);
}
nod* insert(nod *r,char* a,char* b)
  {
	   if (r==0) return (make_nod(a,b));
	   else if (a< r->nume)
				r->stg = insert(r->stg,a,b);
	   else if(a>r->nume)
				r->drt=insert(r->drt,a,b);
	   return(r);
   }
void inordine(nod* r)
{
	if(r!=0){
		inordine(r->stg);
		printf(" %s:",r->nume);
		printf(" %s\n",r->tel);
		inordine(r->drt);
		}
}
nod* search(nod* r,char* k)
	  {
		   if (r==0)  return NULL;
		   else if (strcmp(k,r->nume)<0)
				return ( search(r->stg,k) );
		   else if (strcmp(k,r->nume)>0)
				return ( search(r->drt,k) );
		   else return (r);
	  }
nod* removeGreatest(nod*& r)
{
	nod* p;
	if( r->drt==0 ) {
		 p = r;
		 r = r->stg;
		 return p;
		 }
	else return removeGreatest(r->drt);
}
void deleteRoot(nod*& rad)
{
	 nod* p = rad;
	 if(rad->stg==0) rad = rad->drt;
	 else if(rad->drt==0) rad = rad->stg;
	 else {
		   rad = removeGreatest (rad->stg);
		   rad->stg = p->stg;
		   rad->drt = p->drt;
		   }
	  delete p;
}

void deletep(nod*& rad,char* a)
{
      if(rad==0)
	   printf("Eroare: persoana cu numele %s nu este in arbore!", a);
	  else if(strcmp(a,rad->nume)<0) deletep(rad->stg,a);
	  else if(strcmp(a,rad->nume)>0) deletep(rad->drt,a);
	  else deleteRoot(rad);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?