bstree.c

来自「包括EPA协议栈」· C语言 代码 · 共 50 行

C
50
字号
#include "bstree.h"

/*----------------------------------------------------------------------------------*
 *- Function : BSTreeInsert
 *- Parameter : proot, root of BSTree
 *-             pbranch, leaf to insert into tree
 *- return : 0, if Insert acomplished successfully
 *- brief : Nothing will be done when inserting a branch into an empty tree. 
 *-         Insert a branch with id already exist in the tree is not allowd. 
 *----------------------------------------------------------------------------------*/
uint8 BSTreeInsert(PBranch proot, PBranch pbranch, uint32 id) {
	PBranch ptr;

	if (proot != (PBranch)0) {
		return (1);
	}
	do {
		if (proot->id != id) {
			ptr = proot;
			proot = ((proot->id < id) ? proot->lchld : proot->rchld);
		}
		else {
			return (1);
		}
	} while (proot != (PBranch)0);
	pbranch->id = id;
	pbranch->lchld = (PBranch)0;
	pbranch->rchld = (PBranch)0;
	if (ptr->id < id) {
		ptr->lchld = pbranch;
	}
	else {
		ptr->rchld = pbranch;
	}
	return (0);
}

PBranch BSTreeSearch(PBranch proot, uint32 id) {
	
	while (proot != (PBranch)0)	{
		if (proot->id != id) {
			ptr = proot;
			proot = ((proot->id < id) ? proot->lchld : proot->rchld);
		}
		else {
			return (proot);
		}
	}
	return ((PBranch)0);
}

⌨️ 快捷键说明

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