基于visual Studio2013解决算法导论之029二叉搜索树
![](data:image/png;base64,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h3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEcAQBwCEcAABzCEQAAh3AEAMAhHAEAcAhHAAAcwhEAAIdwBADAIRwBAHAIRwAAHMIRAACHcAQAwCEc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)
题目
二叉搜索树
解决代码及点评
#include <stdio.h> #include <malloc.h> #include <stdlib.h> typedef struct BSTree { int nValue; struct BSTree *pLChild; struct BSTree *pRChild; }BSTree, *PBSTree; PBSTree InsertBSTree(PBSTree pRoot, int nValue) { if (pRoot == NULL) { pRoot = (PBSTree)malloc(sizeof(BSTree)); if (!pRoot) { printf("分配内存失败!\n"); return NULL; } pRoot->nValue = nValue; pRoot->pLChild = NULL; pRoot->pRChild = NULL; } else { if (pRoot->nValue > nValue) { pRoot->pLChild = InsertBSTree(pRoot->pLChild, nValue); } else if (pRoot->nValue < nValue) { pRoot->pRChild = InsertBSTree(pRoot->pRChild, nValue); } } return pRoot; } PBSTree SearchBSTree(PBSTree pRoot, int nValue) { if (pRoot == NULL) { return NULL; } if (pRoot->nValue == nValue) { return pRoot; } else if (pRoot->nValue > nValue) { return SearchBSTree(pRoot->pLChild, nValue); } else { return SearchBSTree(pRoot->pRChild, nValue); } } //删除BST中一个结点 void DeleteNode(PBSTree *pDel) { PBSTree pTmp,pLChildMax; if ((*pDel)->pLChild && (*pDel)->pRChild) {//左右子树都不为空 则将左子树中最大值的右指针指向要删除结点的右子树 //然后将要删除结点的左子树根结点放到要删除结点的位置 pTmp = pLChildMax = (*pDel)->pLChild; while (pLChildMax->pRChild) { pLChildMax = pLChildMax->pRChild; } pLChildMax->pRChild = (*pDel)->pRChild; free((*pDel)); (*pDel) = pTmp; } else if (!(*pDel)->pLChild) {//左子树为空 pTmp = *pDel; (*pDel) = (*pDel)->pRChild; free(pTmp); } else if (!(*pDel)->pRChild) {//右子树为空 pTmp = *pDel; (*pDel) = (*pDel)->pLChild; free(pTmp); } } //删除操作 //设p,p1,r是指针变量,p↑表示s要删除的结点, //p1↑表示p↑的父母结点,则删除可以按如下规定进行: //1 若结点p↑没有左子树,则用右子树的根代替被删除的结点p↑ //2 若结点p↑有左子树,则在左子树里找按中序周游的最后 //一个结点r↑,将r↑的右指针置成指向p↑的右子树的根, //然后用结点p↑的左子树的根去代替被删除的结点p↑ void DeleteBSTree(PBSTree *pRoot, int nValue) { if (!SearchBSTree((*pRoot), nValue)) { printf("没有该元素,无法删除!\n"); return; }; if (nValue == (*pRoot)->nValue) { DeleteNode(pRoot); } else if ((*pRoot)->nValue > nValue) { DeleteBSTree(&(*pRoot)->pLChild, nValue); } else { DeleteBSTree(&(*pRoot)->pRChild, nValue); } } PBSTree DeleteBSTree1(PBSTree pRoot, int nValue) { if (pRoot == NULL) { printf("树为空!\n"); return NULL; } if (pRoot->nValue > nValue) { pRoot->pLChild = DeleteBSTree1(pRoot->pLChild, nValue); } else if (pRoot->nValue < nValue) { pRoot->pRChild = DeleteBSTree1(pRoot->pRChild, nValue); } else {//pRoot即为要删除的结点 if(pRoot->pLChild && pRoot->pRChild) {//左右子树都不为空 //将左子树的最大值赋值给要删除的结点,再删除左子树的最大值结点(叶子结点) PBSTree pLChildMax = pRoot->pLChild; while (pLChildMax->pRChild) { pLChildMax = pLChildMax->pRChild; } pRoot->nValue = pLChildMax->nValue; pRoot->pLChild = DeleteBSTree1(pRoot->pLChild, pRoot->nValue); } else { PBSTree pTmp = pRoot; if (pRoot->pLChild == NULL) {//右子树为空 pRoot = pRoot->pLChild; } else if (pRoot->pRChild == NULL) {//左子树为空 pRoot = pRoot->pLChild; } delete pTmp; } } return pRoot; } void InOrder(PBSTree pRoot) { if (!pRoot) { return; } InOrder(pRoot->pLChild); printf("%d ", pRoot->nValue); InOrder(pRoot->pRChild); } PBSTree GetParent(PBSTree pRoot, int nValue) { if (pRoot == NULL) {//BST树为空 return NULL; } if (pRoot->pLChild && pRoot->pLChild->nValue == nValue) { return pRoot; } if (pRoot->pRChild && pRoot->pRChild->nValue == nValue) { return pRoot; } PBSTree ptemp = NULL; ptemp = GetParent(pRoot->pLChild, nValue); if(ptemp != NULL) return ptemp; ptemp = GetParent(pRoot->pRChild, nValue); if(ptemp != NULL) return ptemp; } int main() { PBSTree pRoot = NULL; int data[] = {12,3,2,34,1,23,44,667,23,3}; for (int i = 0; i < sizeof(data) / sizeof(int); i++) { pRoot = InsertBSTree(pRoot, data[i]); } InOrder(pRoot); PBSTree p = SearchBSTree(pRoot, 311); if (p) { printf("有该元素%d\n", p->nValue); } else { printf("没有该元素!\n"); } //DeleteBSTree1(pRoot, 12); printf("\n"); InOrder(pRoot); p = GetParent(pRoot, 23); if (p) { printf("父结点为%d\n", p->nValue); } else { printf("无父结点!\n"); } system("pause"); return 0; }
代码下载及其运行
代码下载地址:http://download.csdn.net/detail/yincheng01/6858815
解压密码:c.itcast.cn
下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:
1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”
2)在下拉框中选择相应项目,项目名和博客编号一致
3)点击“本地Windows调试器”运行
程序运行结果