数据结构-为什么只能插入一个结点就出错?完全按书上的思路敲的,帮忙看一下,谢谢了

问题描述

为什么只能插入一个结点就出错?完全按书上的思路敲的,帮忙看一下,谢谢了

#include
#include
#include
typedef struct tree {
int number;
struct tree * left;
struct tree * right;
}Tree;
Tree * TreeInsert(Tree * T,int n) {
if (T == NULL) {
T = (Tree *)malloc(sizeof(Tree));
if (T == NULL) {
printf("Out of space!");
return NULL;
}
else {
T->number = n;
T->left = T->right = NULL;
}
}
else if (T&&(n < T->number)) {
TreeInsert(T->left, n);
}
else if(T && (n > T->number)){
TreeInsert(T->right,n);
}
return T;
}
void main() {
int temp, n, i = 0;
printf("please input a number:");
scanf("%d", &n);
Tree * Ntree;
for (i = 0;i < n;i++) {
printf("Now please input a number:");
scanf("%d", &temp);
TreeInsert(Ntree, temp);
}

}

解决方案

请在声明指针的时候 为他赋值 或者 置为null!!!!!!

解决方案二:

Tree * Ntree;改为Tree * Ntree = NULL;没有初始化之前Ntree指向了一个未知的区域
直接访问的话会造成异常崩溃

时间: 2024-10-30 10:25:00

数据结构-为什么只能插入一个结点就出错?完全按书上的思路敲的,帮忙看一下,谢谢了的相关文章

listctrl控件-ListCtrl控件为什么一次只能添加一个文件,而不能同时添加多个?

问题描述 ListCtrl控件为什么一次只能添加一个文件,而不能同时添加多个? 我用C++写的一个MFC基本对话框里引入了一个listctrl控件,但是添加文件的时候一次只能添加一个文件,求大神开导,这是为什么?代码如下:(在初始化函数中)m_control=static_cast(m_player.GetControls()); m_setting=m_player.GetSettings(); m_list=static_cast(m_player.GetCurrentPlaylist())

有点迷惑 一个空间只能存放一个BIN目录么

问题描述 我公司买了个大的空间然后存放了一个站点里面有个bin目录,当然存放的是编译后的dll程序然后公司公司又开发了一套程序放在跟目录下的subsite/文件夹下然后就把整站编译程序上传到了这个目录下(这个bin目下有些文件和根目录下的bin目录文件有几个名称相同,但代码不同),然后我在执行subsite/index.aspx的时候就提示找不到App_Web_index.aspx.28963a75请问该如何解决难道一个空间下允许有两个bin目录存在么,如果可以该如何解决谢谢 解决方案 解决方案

sql语句-如何用SQL语句实现两张表(无关联)查询后,分别将各自的一个字段,插入一个新表。

问题描述 如何用SQL语句实现两张表(无关联)查询后,分别将各自的一个字段,插入一个新表. 有A.B.C三张表如下, 表 A 表B 学生ID(主键) 学生名称 课程ID(主键)| 课程名称 表 C 学生ID 课程ID (联合主键) 那么,通过SQL语句操作如何用学生姓名和课程名(只能获取学生姓名和课程名)将课程ID和学生ID插入到C表(C表中有课程ID和学生ID并且是联合主键),感激不尽. 解决方案 你可以定义2个变量,分别从表A表B用名称查询到ID.在表C的新增语句中使用这2个变量. 不过你这

[华为机试练习题]49.向升序单向链表中插入一个节点

题目 描述: 输入一个升序单向链表和一个链表节点,向单向链表中按升序插入这个节点. 输入为空指针的情况视为异常,另外不考虑节点值相等的情况. 链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 详细描述: 接口说明 原型: ListNode* InsertNodeToList(ListNode* pListHead, ListNode* pInsertNode); 输入参数: ListNode* pListHead 单向链表

Winform中ListBox的每一行插入一个进度条

问题描述 Winform中ListBox的每一行插入一个进度条怎么实现现在要是插入的话只能插入字符串显示,如果插入进度条就不显示任何内容了,怎么才能实现我想要的效果呢? 解决方案 解决方案二:listBox不一定有这功能吧,尝试用其它控件吧解决方案三:privatevoidForm1_Load(objectsender,EventArgse){ProgressBarprogressBar=newProgressBar();progressBar.Width=listBox1.Width;this

救命啊 我快疯了-关于MYSQL只能识别一个汉字的问题

问题描述 关于MYSQL只能识别一个汉字的问题 为什么只能识别"女"这个汉字 我之前创建数据库时,插入一行数据时,里面带着个"女"字,后来我用myeclipse连接数据库出现了"data too long for column"错误,除了"女"字全都无法插入数据库,再后来 我修改my.ini文件,将 sql-mode=STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBST

c语言-自制pcap单独将TCP放在一个pcap文件出错

问题描述 自制pcap单独将TCP放在一个pcap文件出错 将数据写入pcap文件后,全是TCP的.可是单独写一个包两个包在一个文件不会错,包多了就报错.错如图,用wireshark打开之后只能看前几个包,有的正确无误.有的前面就少了4个字节-醉了.用UE打开文件头和数据包头也对啊.至少最开始的是对的啊-请问这是哪个地方写错了? 解决方案 问题没有解决,但是建议还是使用libpcap库制作pcap文件,避免产生不必要bug,移步: http://ask.csdn.net/questions/19

list-在link的环境下面,如何使List&amp;amp;lt;int&amp;amp;gt;只能插入不能删除?

问题描述 在link的环境下面,如何使List<int>只能插入不能删除? 在link的环境下面,如何使List只能插入不能删除? 解决方案 如果你希望List不被删除,你根本就不要开放这个List的实例给调用者访问.而你自己则不会故意去访问它并且删除. 解决方案二: 你自己封装一个List把,他对外只提供add

为什么不允许删除循环单链表中最后一个结点?如何解决?

问题描述 为什么不允许删除循环单链表中最后一个结点?如何解决? /*****************************************************/ /* 函数功能:建立一个空的循环单链表 / / 函数参数:无 / / 函数返回值:指向node类型变量的指针 / / 文件名:clnkinit.c,函数名init() / /****************************************************/ node init() /建立一个空的循环