首页 > 编程语言 > 详细

二叉树的建立与遍历(C语言实现)- 练习

时间:2021-03-14 00:23:21      阅读:26      评论:0      收藏:0      [点我收藏+]

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\n", 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;
}

二叉树的建立与遍历(C语言实现)- 练习

原文:https://www.cnblogs.com/muahao/p/14530937.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!