回 帖 发 新 帖 刷新版面

主题:[讨论]大家做做

BiTree insert_BST(char * str) { 
BiTree root,parent,p;  
char _______(1)________; /* 变量定义及初始化 */ 
root = (BiTree)malloc(sizeof(struct BSTNode)); 
if (!root || *s==\0) return NULL; 
root->Lch = root->Rch = NULL; 
root->Count = 1; 
root->Elem = *s++; 
for(;*s != \0;s++){  
______(2)______; 
parent = NULL; 
while (p) { 
/*p 从树根结点出发查找当前字符 *s 所在结点 */ 
parent = p; 
if (*s == p->Elem) /* 若树中已存在当前字符结点,则当前的字符计数值加 1*/ 
{ p->Count++; break;} 
else /* 否则根据字符 *s 与结点 *p 中字符的关系,进入 *p 的左子树或右子树 */ 
if (*s > p->Elem) p = p->Rch; 
else p = p->Lch; 
} /*while*/  
if (______(3)_____) { /* 若树中不存在字符值为 *s 的结点,则申请结点并插入树中 */ 
p = (BiTree)malloc(sizeof(struct BSTNode)); 
if (!p) return NULL; 
p->Lch = p->Rch = NULL; 
p->Count = 1; 
p->Elem = *s; 
/* 根据当前字符与其父结点字符值的大小关系,将新结点作为左子树或右子树插入 */ 
if (p->Elem > parent->Elem) ______(4)_____ = p; 
else _________(5)________ = p; 

} /*for*/ 
return root; 
能填一下空和对所填的空解释一下吗

回复列表 (共2个回复)

沙发

我填一下,希望交流,如果能正确答案,请给出.

我的填法如下:

(1)*s     

(2)p=root

(3) *p!=*s

(4)parent->rch

(5)parent->lch

板凳

(1) *s = str
(2) p = root
(3) p = = NULL
(4) parent->Rch
(5) parent->Lch
你能给我每空解释吗

我来回复

您尚未登录,请登录后再回复。点此登录或注册