Пример #1
0
int AddItem(const Item * pi, Tree * ptree)
{
	Node * new_node;

	if(TreeIsFull(ptree))
	{
		fprintf(stderr,"Tree is full.\n");
		return FALSE;
	}

	if(SeekItem(pi,ptree).child != NULL)
	{
		fprintf(stderr,"Attempt to add duplicate item.\n");
		return FALSE;
	}

	new_node = MakeNode(pi);
	if(new_node == NULL)
	{
		fprintf(stderr,"couldn't create node.\n");
		return FALSE;
	}

	ptree->size++;
	if(ptree->root == NULL)
		ptree->root = new_node;
	else
		AddNode(new_node,ptree->root);
	
	return TRUE; 
}
Пример #2
0
//添加元素,即节点
BOOL AddItem(const Item * pi,Tree * ptree)
{
	Node * new_node;//新节点
	
	if(TreeIsFull(ptree))//判断树是否已满
	{
		fprintf(stderr,"Tree is full.\n");
		return FALSE;
	}
	if(SeekItem(pi,ptree).child != NULL)//在树中查找目标项目
	{
		fprintf(stderr,"Attempted to add duplicate item\n");
		return FALSE;
	}
	new_node = MakeNode(pi);//创建新节点,成功返回新节点,否则返回NULL
	if(new_node == NULL)//创建失败,返回false
	{
		fprintf(stderr,"Couldn't create node!\n");
		return FALSE;
	}
	//节点创建成功,向树中添加节点
	ptree->size++;//树的大小加1
	if(ptree->root == NULL)//如果树为空
	{
		ptree->root = new_node;
	}
	else
	{
		AddNode(new_node,ptree->root);//找到新节点应该添加到的位置
	}
	return TRUE;
}
Пример #3
0
void addpet(Tree *pt){
	Item temp;
	if(TreeIsFull(pt)){
		puts("No room in the club!");
	}else{
		puts("Please enter name of pet: ");
		fgets(temp.petname,MAXN,stdin);
		puts("Please enter kind of pet: ");
		fgets(temp.petkind,MAXN,stdin);
		uppercase(temp.petname);
		uppercase(temp.petkind);
		AddItem(&temp,pt);
	}
	
}
Пример #4
0
void addpet(Tree * pt){
	Item temp;
	
	if(TreeIsFull(pt)){
		puts("No room in the club");
	}
	else{
		puts("Please enter name of pet");
		gets(temp.petname);
		puts("please enter pet kind");
		gets(temp.petkind);
		uppercase(temp.petname);
		uppercase(temp.petkind);
		AddItem(&temp,pt);
	}
}
Пример #5
0
//添加元素,即节点
BOOL AddItem(const Item * pi,Tree * ptree)
{
	Node * new_node;//新节点
	Pair look;
	
	//初始化查找到的与输入相同的节点look
	/*look.parent = NULL;
	look.child = NULL;*/

	if(TreeIsFull(ptree))//判断树是否已满
	{
		fprintf(stderr,"Tree is full.\n");
		return FALSE;
	}
	if((look = SeekItem(pi,ptree)).child != NULL)//在树中查找目标项目
	{
		fprintf(stderr,"Attempted to add duplicate item\n");
		//如果树中已经存在相应节点,则将新同名元素添加到已有节点列表的末尾
		if(QueueIsFull(look.child->queue))//判断当前节点列表是否已满
		{
			fprintf(stderr,"Current node's queue is full.\n");
			return FALSE;
		}
		EnQueue(*pi,look.child->queue);
	}
	else
	{
		new_node = MakeNode(pi);//创建新节点,成功返回新节点,否则返回NULL
		if(new_node == NULL)//创建失败,返回false
		{
			fprintf(stderr,"Couldn't create node!\n");
			return FALSE;
		}
		//节点创建成功,向树中添加节点
		ptree->size++;//树的大小加1
		if(ptree->root == NULL)//如果树为空
		{
			ptree->root = new_node;
		}
		else
		{
			AddNode(new_node,ptree->root);//找到新节点应该添加到的位置
		}
	}
	return TRUE;
}
void addpet(Tree * pt) {
	Pet * ppet = (Pet *) malloc(sizeof(Pet));
	if (ppet == NULL) {
		fprintf(stderr, "Could not allocate memory.\n");
		return;
	}

	if (TreeIsFull(pt)) {
		puts("No room in the club!");
	}
	else {
		puts("Please enter name of pet:");
		get(ppet->name, STRLEN);
		puts("Please enter pet kind:");
		get(ppet->type, STRLEN);
		uppercase(ppet->name);
		uppercase(ppet->type);
		ppet->next = NULL;
		AddPet(ppet, pt);
	}
}
Пример #7
0
void addPet(Tree * pt)
{
	Item temp;

	if (TreeIsFull(pt))
	{
		fputs("No room in the club!\n", stdout);
	}
	else
	{
		fputs("Please enter name of pet: ", stdout);
		fgets(temp.petName, STRLEN, stdin);
		reject_ch(temp.petName, '\n');

		fputs("Please enter pet kind: ", stdout);
		fgets(temp.petKind, STRLEN, stdin);
		reject_ch(temp.petKind, '\n');

		upperCase(temp.petName);
		upperCase(temp.petKind);
		AddItem(&temp, pt);
	}
}
Пример #8
0
bool AddItem(const Item *pi,Tree *ptree){
	Node * new_node;
	if(TreeIsFull(ptree)){
		fprintf(stderr,"Tree is Full\n");
		return false; //提前返回
	}
	if(SeekItem(pi,ptree).child){
		fprintf(stderr,"Attempted to add duplicate item\n");
		return false; //提前返回
	}
	new_node = MakeNode(pi); //指向新节点
	if(!new_node){
		fprintf(stderr,"Couldn't create node\n");
		return false;
	}
	//成功创建一个节点
	ptree->items++;
	if(!ptree->root){//情况1:树为空
		ptree->root = new_node; //新节点即为根节点
	}else{                        //情况2:树非空
		AddNode(new_node,ptree->root); //把新节点添加到树中
	}
	return true;
}