二叉树简单例子/* 《嗨翻C语言》随书练习 6章    2016-12-06

xiousheng@126.com  二叉树例子,警务罪犯判断档案系统,哈哈

书中可以专家系统例子

*/

#include

#include     //要动态用内存必须用这个库 malloc(),free()

#include

typedef struct node{

char * question;        //嫌疑人

struct node *no;

struct node *yes;

}node;

//简单的判断函数

int yes_no(char * question){

char answer[3];

printf("%s?(y/n):", question);

fgets(answer, 3, stdin);

return answer[0] == 'y';

};

node * create(char *question){       //创建

node *n = malloc(sizeof(node));

n ->question = strdup(question);

n ->no = NULL;

n ->yes = NULL;

return n;

}

//释放内存

void release(node *n){

if (n){

if (n->no) release(n->no);

if (n->yes)release(n->yes);

if (n->question) free(n->question);

free(n);

}

};

int main(){

char question[80];

char suspect[20];

node *start_node = create("嫌疑犯有胡子吗");

start_node ->no = create("王小华");

start_node ->yes = create("猪猪赌");

node *current;

do

{

current = start_node;

while (1){

if (yes_no(current->question)){

if (current->yes){

current = current->yes;

}else{

printf("%s是犯罪嫌疑人\r\n",current->question);

break;

}

}else if(current->no){

current = current->no;

}else{

/*新的犯罪嫌疑人*/

printf("谁是新的犯罪嫌疑人?");

fgets(suspect, 20, stdin);

suspect[strlen(suspect)-1] = '\0' ;   //去掉换行符号

node *yes_node = create(suspect);

current->yes = yes_node;

/*把以前的排除了的嫌疑人全加到不是这边*/

node *no_node = create(current->question);

current->no = no_node;

/*记录新的特征*/

printf("%s是犯罪嫌疑人,%s不是。\r\n请输入辨认他的信息:", suspect, current->question);

fgets(question, 80, stdin);

question[strlen(question)-1] = '\0' ;   //去掉换行符号

free(current->question ) ;

current->question = strdup(question);

break;

}

}

} while (yes_no("再次运行"));

release(start_node);

return 0;

};

结果配图

6翻了C语言,《嗨翻C语言》随书练习六 6章 二叉树简单例子相关推荐

  1. FL Studio春节大特惠,一起嗨翻狗年

    寒冷冬日,依旧阻挡不了我们满溢的热情,没想好怎么嗨年的小伙伴看这里,看这里,看这里,今年春节,我们搞点不一样的,让FL Studio带你嗨翻春节,浓浓年味撞上水果编曲软件,趣味十足! 春节假期,优惠不 ...

  2. 和年轻人一起嗨翻盛夏!梦百合婚礼季“好梦音乐节”首场圆满落幕

    这个夏天,音乐节作为全民party席卷了全国各地,不仅成为了年轻人表达自我.释放个性的生活方式,也是品牌与年轻群体开展情感沟通.传递品牌文化的重要阵地,一些有资源.有实力的品牌化身音乐节主办方,以更沉 ...

  3. python翻页_python实现电子书翻页小程序

    本文实例为大家分享了python实现电子书翻页的具体代码,供大家参考,具体内容如下 1.题目: 电子书翻页: (1)自动翻页:每次默认读三行,读完之后睡两秒,直到把所有内容全部读出来 (2)手动翻页: ...

  4. 联合体c语言作用,C语言共用体-C语言union-什么是C语言中的联合体-嗨客网

    C语言共用体教程 在 共用体的各个成员会占用不同的内存,互相之间没有影响,而共用体的所有成员占用同一段内存,修改一个成员会影响其余所有成员. C语言共用体 语法 union unionName{ fi ...

  5. c语言注释的作用文百,C语言注释-C语言行注释-C语言注释块注释-嗨客网

    C语言注释教程 用于注解说明解释程序的文字就是注释,注释提高了代码的阅读性.同时,注释也是一个程序员必须要具有的良好编程习惯.我们应该首先将自己的思想通过注释先整理出来,再用代码去体现. 在 C语言注 ...

  6. 网络语言嗨C,1,2,3,4,5,6,7,8,9,0的网络语言代表什么意思啊?

    不知您是否指的是数字网络语言,如果是的话,看看下面的文章吧. 网络语言最大的特点是输入(书写)简便,其代表的约定俗成的涵义,有的简明,有的含隐,有的诙谐,有区别于正常交流语言(文字)的特殊功效.网络语 ...

  7. c语言转换为python语言_python和c语言

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! c语言是编译型语言,经过编译后,生成机器码,然后再运行,执行速度快,不能跨平台, ...

  8. r语言导出文件为xlxs_R语言学习——R读取txt、csv、xls和xlsx格式文件

    最近项目中运用到了R读取文件数据,所以把相关好用的.经过验证的方法总结了一下,有效避免下次入坑. 1. R读取txt文件 使用R读取txt文件直接使用read.table()方法进行读取即可,不需要加 ...

  9. 【Golang】一篇文章带你快速了解Go语言为什么你要学习Go语言

    目录 1. 为什么互联网世界需要Go语言 1.1 硬件限制:摩尔定律已然失效 1.2 Go语言为并发而生 1.3 Go性能强悍 1.4 Go语言简单易学 1.4.1 语法简洁 1.4.2 代码风格统一 ...

最新文章

  1. RecyclerView悬浮标题
  2. 计算机考研学科专业基础,2018考研计算机学科专业基础综合考试大纲 出炉
  3. mysql 跨库复制_Mysql跨数据库(在同一IP地址中)复制表
  4. echarts生成图表
  5. Eclipse无提示的解决办法 和 内容辅助技巧
  6. hibernate入门二之单表操作
  7. 第六章 实验报告 (函数与宏定义)
  8. esri开发大赛项目总结
  9. 草根创新的狂欢——《大数据时代》对程序员的启示
  10. 链克价格一路高涨,简单 5 招让你快速获取链克
  11. 报错undefined symbol: _ZN3c104impl23ExcludeDispatchKeyGuardC1ENS_11DispatchKeyE
  12. 恢复被误删的ESP引导分区
  13. 关于2010年部分节假日安排
  14. Pytorch踩坑记:赋值、浅拷贝、深拷贝三者的区别以及model.state_dict()和model.load_state_dict()的坑点
  15. spring MVC之Annotated Controllers
  16. 苹果电脑如何正确断网?macOS操作系统断网方法来了
  17. 小学计算机考试感受作文,考试后的感想小学作文6篇
  18. 面试指南(三):想跳槽,这些问题你会了吗?
  19. 使用python爬取马蜂窝游记
  20. 【深度学习】CLM-framework开源代码

热门文章

  1. android学习笔记55——ContentProvider_2
  2. Sql Server函数全解(二)数学函数
  3. 苹果设置网易邮箱收件服务器,如何在iPhone 3/4、iPod touch的邮件应用程序中使用IMAP服务...
  4. python绘制3维图-1、2、3维图见过,用Python画出来的六维图见过么?
  5. python语言怎么输入-python如何用input输入数组
  6. python怎么打开交互式窗口-如何在交互式环境中执行Python程序
  7. python第三方库下载-3、python第三方库的安装方式
  8. python怎么安装numpy库-Python NumPy库的安装和使用
  9. 关于python的一些好的书籍推荐-荐书||关于Python的一些书籍推荐
  10. java和python哪个好就业2020-java和python哪个的前途更好?