所属类别:Linux
文章作者:bob_zhang2004
特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!
里面的栈操作, 可以看这里:http://bobzhang.wiki.zoho.com/用单链表实现的stack.html这个 二叉树是这样的:ABC##DE#G##F###程序没有用#而是空格。#include #include #include "stack_lib.h"typedef struct bt_node {struct bt_node *left;//左子树struct bt_node *right;//右子树void *data_p;//数据项}bt_node_t,BiTree;char array[] = "ABC DE G F ";int i=0;char *p = NULL;//按先序遍历创建树BiTree *CreateBiTree(bt_node_t **root){char ch;ch = *(p++);printf("ch = %c\n",ch);if(ch == ' ') //输入空格表示这个空树 {*root = NULL;}else {*root = (bt_node_t *)malloc(sizeof(bt_node_t));if(!(*root)) {printf("make root failure \n");return NULL;}(*root)->data_p = &ch;printf("*root->data_p value = %c\n",*(char *)((*root)->data_p));CreateBiTree(&((*root)->left));//创建左子树CreateBiTree(&((*root)->right));//创建右子树}return *root;}int PreorderTraverse(BiTree *root){DECLARE_STACK(RCHILD_STACK);node_t * node = NULL;int ret = 0;bt_node_t * tmp_btnode = root;printf("root value %c\n",*(char *)(root->data_p));printf("root = %p\n",root);LOOP://入栈就是右子树的地址,因为node_t 里面的data_p 是 void *while(tmp_btnode) {DECLARE_NODE(right_node,tmp_btnode->right);printf("Node value = %c\n",*(char *)(root->data_p));//右子树入栈push(RCHILD_STACK,right_node);tmp_btnode = tmp_btnode->left;}ret = pop(RCHILD_STACK,&node); //弹出右子树if(!ret) {//说明不是空栈tmp_btnode = (bt_node_t *)(node->data_p);free(node);//必须释放这个节点goto LOOP;}free_stack(RCHILD_STACK);//现在栈没有用了,要释放return 0;}int main(void){BiTree * root = NULL;p = array;CreateBiTree(&root);printf("root_value=%c, left=%c , right=%c\n",*(char *)(root->data_p), *(char *)(root->left->data_p),*(char *)(root->right->data_p));PreorderTraverse(root);return 0;}大家帮我看看, 怎么用前根序遍历 ,输不出正确结果呢?谢谢了。输出如下:ch = A*root->data_p value = Ach = B*root->data_p value = Bch = C*root->data_p value = Cch = ch = ch = D*root->data_p value = Dch = E*root->data_p value = Ech = ch = G*root->data_p value = Gch = ch = ch = F*root->data_p value = Fch = ch = ch = root value root = 00032430Node value = Node value = Node value = Node value = Node value = Node value = Node value = this is empty stack
相关信息· SOAP学习笔记(1)
· bbs的数据结构和存储过程(二)
· null
· 常用的JavaScript
67802
42324
