| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1749 人关注过本帖
标题:小妹哭求一题的算法,各为好心的哥哥姐姐救救偶呀。
取消只看楼主 加入收藏
小馨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-5-14
收藏
 问题点数:0 回复次数:5 
小妹哭求一题的算法,各为好心的哥哥姐姐救救偶呀。
各位哥哥姐姐,帮帮我呀。 由于以前没学过C语言,上数据结构课的完全是晕的,马上来来C语言的书学习,可是已经来不及了,马上要交作业了,所以请各位哥哥姐姐帮帮我呀,这个题是:

采用二叉链表作为存储结构,完成二叉树的建立,先序.中序和后序以及按层次遍历的操作,所求有叶子及结点总数的操作等。

这个题偶觉得好难呀,可是不交就会被赶出教室了,求各位前辈 学长 学姐 哥哥 姐姐用C语言帮偶写一个好么,顺便加一点点注解,偶太菜了,怕看不懂,先谢谢拉。

搜索更多相关主题的帖子: 算法 小妹 好心 
2005-05-14 21:43
小馨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-5-14
收藏
得分:0 
555555555555555
2005-05-15 08:48
小馨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-5-14
收藏
得分:0 
谢谢大哥呀
2005-05-15 11:19
小馨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-5-14
收藏
得分:0 
哥哥,帮我用C写一个好么,不用写的很好,只要能运行就可以的。
2005-05-15 11:24
小馨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-5-14
收藏
得分:0 
我只学了C语言的书的一半多,C++来没的及学哦,我也知道我的要求很过分,不过我也实在是没有办法拉。
2005-05-15 16:05
小馨
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-5-14
收藏
得分:0 

哇,好复杂呀,看不懂哈,不过还是谢谢拉。 我那道题用下面这个程序能过么,大概意思好像差不多哟。 #include <stdio.h> #include<malloc.h> #define MaxSize 100 typedef char ElemType; typedef struct node { ElemType data; struct node *left,*right; } BTree;

void creatree(BTree **BT,char *str) { BTree *stack[MaxSize],*p; int top=-1,k,j=0;/*top为栈指针,k指定是左还是右孩子,j为str指针*/ char ch; *BT=NULL; ch=str[j]; while (ch!='\0') { switch(ch) { case '(':top++;stack[top]=p;k=1; /*为左结点*/ break; case ')':top--; break; case ',':k=2; /*为右结点*/ break; default: p=(BTree *)malloc(sizeof(BTree)); p->data=ch;p->left=p->right=NULL; if (*BT==NULL) /*根结点*/ *BT=p; else { switch(k) { case 1:stack[top]->left=p; break; case 2:stack[top]->right=p; } } } j++; ch=str[j]; } } void preorder(BTree *BT) { if (BT!=NULL) { printf("%c",BT->data); preorder(BT->left); preorder(BT->right); } } void inorder(BTree *BT) { if (BT!=NULL) { inorder(BT->left); printf("%c",BT->data); inorder(BT->right); } } void postorder(BTree *B) { if (B!=NULL) { postorder(B->left); postorder(B->right); printf("%c",B->data); } } int BTreeDepth(BTree *B) { int leftdep,rightdep; if (B==NULL) return(0); else { leftdep=BTreeDepth(B->left); rightdep=BTreeDepth(B->right); if (leftdep>rightdep) return(leftdep+1); else return(rightdep+1); } } int leafcount(BTree *B) { if (B==NULL) return(0); else if (B->left==NULL && B->right==NULL) return(1); else return(leafcount(B->left)+leafcount(B->right)); }

main() { BTree *B; char *s="A(B(D,E(H,I)),C(G))"; creatree(&B,s); printf("\n前序遍历:"); preorder(B); printf("\n中序遍历:"); inorder(B); printf("\n后序遍历:"); postorder(B); printf("\nthe deepth is%d\n",BTreeDepth(B)); printf("the leafcount is %d\n",leafcount(B)); }

2005-05-16 09:47
快速回复:小妹哭求一题的算法,各为好心的哥哥姐姐救救偶呀。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039788 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved