zoukankan      html  css  js  c++  java
  • 二叉树的建立与遍历(C语言实现)- 练习

    ref

    #include <stdio.h>
    #include <stdlib.h>
    
    typedef struct node {
    	int data;
    	struct node *lchild, *rchild;
    }bitree_t;
    
    bitree_t *createNode(int data) {
    	bitree_t *p = (bitree_t *)malloc(sizeof(bitree_t));
    
    	p->data = data;
    	p->lchild = p->rchild = NULL;
    
    	return p;
    }
    
    bitree_t *addNode(int value, bitree_t *pNode) {
    	if (pNode == NULL)
    		return createNode(value);
    
    	if (value == pNode->data)
    		return pNode;
    
    	if (value < pNode->data) {
    		if (pNode->lchild == NULL) {
    			pNode->lchild = createNode(value);
    			return pNode->lchild;
    		} else {
    			addNode(value, pNode->lchild);
    		}
    	} else {
    		if (pNode->rchild == NULL) {
    			pNode->rchild = createNode(value);
    			return pNode->rchild;
    		} else {
    			addNode(value, pNode->rchild);
    		}
    	}
    
    	return pNode;
    }
    
    void listNode(bitree_t *pNode) {
    	if (pNode != NULL) {
    		printf("%d
    ", pNode->data);
    		listNode(pNode->lchild);
    		listNode(pNode->rchild);
    	}
    }
    
    int main(void) {
    	bitree_t *pRoot = NULL;
    
    	pRoot = createNode(0);
    
    	int rawdata[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    
    	int i;
    	for (i = 0; i < sizeof(rawdata)/sizeof(int); i++) {
    		addNode(rawdata[i], pRoot);
    	}
    
    	listNode(pRoot);
    
    	return 0;
    }
    
    
    muahao@aliyun.com
  • 相关阅读:
    使用Dorado框架开发必备参考
    Dorado重用最佳实践
    css布局_web
    dorado学习笔记(二)
    Oracle归档日志删除
    给大家拜年啦!
    悟透JavaScript
    BCM57781网卡驱动下载地址
    win7安装jdk完后配置
    win7删除SVN保存的本地密码
  • 原文地址:https://www.cnblogs.com/muahao/p/14530937.html
Copyright © 2011-2022 走看看