黑马程序员技术交流社区

标题: 程序崩溃了,无解 [打印本页]

作者: 2014571245    时间: 2014-4-26 13:55
标题: 程序崩溃了,无解
本帖最后由 2014571245 于 2014-4-27 10:48 编辑
  1. #include <stdio.h>
  2. #include <malloc.h>

  3. typedef struct{
  4.     TNode* left;
  5.     TNode* right;
  6.     int value;
  7. } TNode;
  8. TNode* root=NULL;
  9. void append(int N);
  10. int main()
  11. {
  12.     append(63);
  13.     append(45);
  14.     append(32);
  15.     append(77);
  16.     append(96);
  17.     append(21);
  18.     append(17); // Again, 数字任意给出
  19. }
  20. void append(int N)
  21. {
  22.     TNode* NewNode=(TNode *)malloc(sizeof(TNode));NewNode->value=N;
  23.     if(root==NULL)
  24.     {
  25.         root=NewNode;
  26.         return;
  27.     }
  28.     else
  29.     {
  30.         TNode* temp;temp=root;
  31.         while((N>=temp.value && temp.left!=NULL) || (N<temp. value && temp.right!=NULL))
  32.         {
  33.             while(N>=temp.value && temp.left!=NULL)temp=temp.left;
  34.             while(N<temp.value && temp.right!=NULL)temp=temp.right;
  35.         }
  36.         if(N>=temp.value)
  37.             temp.left=NewNode;
  38.         else
  39.             temp.right=NewNode;
  40.         return;
  41.     }
  42. }





  43. 怎么会崩溃呢?求详解?





复制代码



作者: 脸皮猴    时间: 2014-4-26 15:09
{:3_46:}建议你把程序不要直接复制进来,如图,把代码放这里面,大家才好帮你分析。。。这代码。。没法看。。
作者: m573555543    时间: 2014-4-26 19:52
#include <malloc.h>

把 <>   改成 “   ”

在把  mallooc. h 发上来
作者: 251638256    时间: 2014-4-26 19:52
问题1.结构体定义出错
typedef strct Node{
    strct Node *left;

}
作者: 251638256    时间: 2014-4-26 19:55
  问题1.结构体定义出错
typedef strct Node{
    strct Node *left;
   ......
}TNode; 这样才是定义!

第二:
使用指针访问结构成员需要用到->运算符而不是.运算符

第三有逻辑错误 ,指针问题




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2