久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1960|回復: 4
打印 上一主題 下一主題
收起左側

用C語言這么構建一個二叉樹不成功原因?想求助一下

[復制鏈接]
回帖獎勵 1 黑幣 回復本帖可獲得 1 黑幣獎勵! 每人限 1 次(中獎概率 50%)
跳轉到指定樓層
樓主
ID:379586 發(fā)表于 2018-8-11 13:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
typedef struct node Binary_Tree;
        typedef struct node
        {
                int  data;  
                struct node *leftnode;
                struct node *rightnode;

        }Binary_Tree,*Tree;

u8 Make_BinaryTree( Binary_Tree *tree , int *p )
{
        static int *q;    q=p;         
   if( *q==0)
   {
   tree=NULL;
   q++;
  return 0;  
   }
   else
   {
   tree=(Binary_Tree *)malloc(sizeof(Binary_Tree));
   tree->data=*q;
   printf("%d \n", tree->data);           
   q++;
   Make_BinaryTree( tree->leftnode , q );           
   Make_BinaryTree( tree->rightnode ,q );
   }

   return 0;
}

void Initialization_BinaryTree(void)
{
         
int array[]={1,2,3,0,0,4,0,0,5,6,0,0,7,0,0 };
Binary_Tree tree;

Make_BinaryTree( &tree , &array[0] );
printf("%d \n" ,tree.data);         
printf("%d \n" ,tree .rightnode->data);
printf("%d \n" ,tree.leftnode->data);
這三個輸出都是亂碼,我不知道二叉樹的建立過程中問題在哪里,我應該在每個節(jié)點都分配了內存,不過結果好像有問題

}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:155507 發(fā)表于 2018-8-11 17:23 | 只看該作者
給你一個試試

  1. /*-------------------------------------------------*/
  2. #include <stdio.h>
  3. #include <stdlib.h>

  4. typedef struct node
  5. {
  6.   int val;
  7.   struct node * left;
  8.   struct node * right;
  9. } node_t;

  10. void insert(node_t * tree,int val);
  11. void print_tree(node_t * current);
  12. void printDFS(node_t * current);

  13. int main()
  14. {
  15.   node_t * test_list = malloc(sizeof(node_t));
  16.   /* set values explicitly, alternative would be calloc() */
  17.   test_list->val = 0;
  18.   test_list->left = NULL;
  19.   test_list->right = NULL;

  20.   insert(test_list,5);
  21.   insert(test_list,8);
  22.   insert(test_list,4);
  23.   insert(test_list,3);

  24.   printDFS(test_list);
  25.   printf("\n");
  26. }

  27. void insert(node_t * tree, int val)
  28. {
  29.   if (tree->val == 0)
  30.   {
  31.     /* insert on current (empty) position */
  32.     tree->val=val;
  33.   }
  34.   else
  35.   {
  36.     if (val < tree->val)
  37.     {
  38.       /* insert left */
  39.       if (tree->left != NULL)
  40.       {
  41.         insert(tree->left, val);
  42.       }
  43.       else
  44.       {
  45.         tree->left = malloc(sizeof(node_t));
  46.         /* set values explicitly, alternative would be calloc() */
  47.         tree->left->val = val;
  48.         tree->left->left = NULL;
  49.         tree->left->right = NULL;
  50.       }
  51.     }
  52.     else
  53.     {
  54.       if (val >= tree->val)
  55.       {
  56.         /* insert right */
  57.         if (tree->right != NULL)
  58.         {
  59.           insert(tree->right,val);
  60.         }
  61.         else
  62.         {
  63.           tree->right=malloc(sizeof(node_t));
  64.           /* set values explicitly, alternative would be calloc() */
  65.           tree->right->val=val;
  66.           tree->right->left = NULL;
  67.           tree->right->right = NULL;
  68.         }
  69.       }
  70.     }
  71.   }
  72. }

  73. /* depth-first search */
  74. void printDFS(node_t * current)
  75. {
  76.   /* change the code here */
  77.   if (current == NULL)         return;   /* security measure */
  78.   if (current->left != NULL)   printDFS(current->left);
  79.   if (current != NULL)         printf("%d ", current->val);
  80.   if (current->right != NULL)  printDFS(current->right);
  81. }

復制代碼
回復

使用道具 舉報

板凳
ID:379586 發(fā)表于 2018-8-11 20:37 | 只看該作者
很感謝給代碼,我主要是問問這么寫到底錯在哪里,我知道別的寫法可以只是這種為什么不行
回復

使用道具 舉報

地板
ID:155507 發(fā)表于 2018-8-11 23:05 | 只看該作者
再好好看看書,看看別人的程序吧。
回復

使用道具 舉報

5#
ID:390775 發(fā)表于 2018-9-3 12:44 | 只看該作者
再看看二叉樹的知識點吧   看看它的基本操作
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.蜜桃av | 国产成人精品久久二区二区91 | 欧美a在线观看 | jlzzjlzz国产精品久久 | 亚洲成人精品 | 国产高清精品一区二区三区 | 久久精品免费看 | 亚洲视频欧美视频 | 国产福利在线看 | 超碰精品在线观看 | 国产精品一级在线观看 | 国产精品久久国产精品 | 国产一区二区在线看 | 粉色午夜视频 | 色播99| 成人国产精品免费观看 | 日韩av在线一区二区 | 国产一区精品在线 | 成人国产精品视频 | 91社区在线观看 | 国产成人一区二区三区 | 久久久久亚洲精品国产 | 成人小视频在线观看 | 亚洲风情在线观看 | 久久久av中文字幕 | 日韩中文字幕一区二区 | 9999精品视频 | 美女视频黄的免费 | 亚洲一av| 久久久久亚洲精品中文字幕 | 国产日韩欧美中文字幕 | 欧美综合一区二区三区 | 成年人在线观看视频 | 激情五月婷婷丁香 | 黄色毛片免费 | 美女操网站 | 91精品国产91久久久久久不卞 | www.狠狠干 | 久久69精品久久久久久久电影好 | aaa综合国产| www.99re|