




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,.txt1617#include #include #include #include #define MAXWORD 100typedef struct tnodechar *word;int count;struct tnode *left;struct tnode *right;/ tnode(char *s, int w, tnode *p, tnode *q)/ / *tnodeptr;struct tnode *addtree(struct tnode *, char *);void deltree(struct tnode *, char *);void treeprint(struct tnode*, FILE *fp, int n, int &m);void showMenu();void main()int N, k; FILE *fp;struct tnode *root;char wordMAXWORD, txt25;root=NULL; while (1)showMenu();scanf(%d, &N);switch(N)case 1:printf( 0 :n);while (scanf(%s, word)!=EOF)if(word0=0) break;if(isalpha(word0)root=addtree(root, word);printf(n);break;case 2:if(root=NULL) printf(NULLn); break;printf(n);treeprint(root, fp, 0,k = 1);break;case 3:printf(n);scanf(%s, word);deltree(root, word);break;case 4:printf(: );scanf(%s, txt);strcat(txt, .txt);fp=fopen(txt, w);if(fp=NULL) printf(!); break;treeprint(root, fp, 1, k = 1);fclose(fp);printf(%s n, txt);break;case 0:return ;default:printf(!);break;return ;struct tnode* talloc();char *strdup(char*);struct tnode *addtree(struct tnode *p, char *w)int cond;if (p=NULL)p=talloc();p-word=strdup(w);p-count=1;p-left=p-right=NULL;else if(cond=strcmp(w, p-word)=0)p-count+;else if (condleft=addtree(p-left, w);elsep-right=addtree(p-right, w);return p;/* 4* 1. * 2. * 3. * 4. * a. * * b. */void deltree(struct tnode *p, char *w)int co, t=0;struct tnode *q=NULL, *r=NULL;while (p!=NULL & (co=strcmp(w, p-word)!=0)if(co left; t =1;else q =p; p=p-right; t =0;if(p=NULL)printf(n);else if (p-left=NULL & p-right=NULL) /if(t=1)q-left= NULL;else q-right=NULL;else if(p-left & p-right=NULL) /if(t=1) q-left=p-left;else q-right =p-left;else if(p-left=NULL & p-right) /if(t=1)q-left=p-right;else q-right=p-right;else / r=p-left;while(r-right)r =r-right;r-right =p-right;if(t=1)q-left = r;else q-right = r;printf(%s n, w);return ;/-/print/-void treeprint(struct tnode* p,FILE *fp, int n, int &m)if(p!=NULL)treeprint(p-left, fp, n,m);if(n)fprintf(fp, %-4d%-4d%sn,m+,p-count,p-word);else printf(%-4d%-4d%sn,m+,p-count,p-word);treeprint(p-right, fp, n,m);struct tnode *talloc()return (struct tnode*)malloc(sizeof(struct tnode);char *strdup(char*s)char *p;p=(char*)malloc(strlen(s)+1);if(p!=NULL) strcpy(p, s);return p;void showMenu()printf(n t n 1. n 2. n 3. n 4. n 0. n);/*struct Node int id; Node *left,*right;class IDTree Node *root; void Show(Node*& t) if(t=NULL) return; Show(t-left); coutidright); void Add(Node*& t,int n) if(t=NULL) t=new Node; t-id=n; t-left=t-right=NULL; else if(nid) Add(t-left,n); else Add(t-right,n); int Count(Node*t) int i=1; coutileft); i+=Count(t-right); return i; else return 0; public: IDTree() root=NULL; void AddID(int n) Add(root,n); void ShowID() Show(root); int CountID() return Count(root); bool Find(int n) Node *t=root; while(t) if(n=t-id) return true; if(nt-id) t=t-right; if(nid) t=t-left; return false;void Removeint n)*/*void Remove(Node *BT,int x) Node *p=*BT,*q,*r,*t; q=NULL; while(p!=NULL&p-data!=x) if(xdata) q=p; p=p-left; else q=p; p=p-right; if(p=NULL) coutleft=NULL)/ if(q=NULL)/ t=p-right; else if(q-left=p) q-left=p-right; else q-r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版智能通风排烟系统安装与智能化改造合同文本
- 2025版智能建筑项目施工班组承包服务合同范本
- 2025版全新员工试用期入职劳动合同及福利待遇协议
- 2025年度高性能河沙资源买卖合同
- 2025年度维修保养外包服务合同
- 2025诚意金协议范本:企业项目合作诚意保证金
- 2025版石材及辅料一体化建筑施工总承包合同
- 2025房地产战略合作地产项目工程监理合同
- 2025年度WTO与全球供应链金融服务合同
- 2025年度医院食堂配餐安全责任协议书范本
- 纪委案件审理课件教材
- 生活中的会计课件
- 辽宁大学学生手册
- CorelDRAW教学讲解课件
- 湘美版美术一年级上册全册课件
- 酒水购销合同范本(3篇)
- 师说一等奖优秀课件师说优质课一等奖
- 学习罗阳青年队故事PPT在急难险重任务中携手拼搏奉献PPT课件(带内容)
- 小学生打扫卫生值日表word模板
- 新水浒q传乡试会试测验题目
- 小学一年级开学第一课
评论
0/150
提交评论