免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2749 | 回复: 14
打印 上一主题 下一主题

二叉树用法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-03-02 13:29 |只看该作者 |倒序浏览
在我的应用编程中从来没有用到过二叉树,最多用到过一些线性链表,不知道各位在从业的经历中用过没有?

论坛徽章:
0
2 [报告]
发表于 2004-03-02 13:43 |只看该作者

二叉树用法

曾经写过类哈夫曼编码的应用,算不算从业经历?有没有奖品领阿!!!哈哈

论坛徽章:
0
3 [报告]
发表于 2004-03-02 13:51 |只看该作者

二叉树用法

[quote]原帖由 "w25"]曾经写过类哈夫曼编码的应用,算不算从业经历?有没有奖品领阿!!!哈哈[/quote 发表:


你是怎么用的,因为什么用的,能不能说说。我觉得应用编程中很少用到。至于奖品嘛!,如果你说得好当然有了

论坛徽章:
0
4 [报告]
发表于 2004-03-02 14:29 |只看该作者

二叉树用法

给不给奖品,说一声啊!俺急!!!

论坛徽章:
0
5 [报告]
发表于 2004-03-02 15:53 |只看该作者

二叉树用法

[quote]原帖由 "w25"]给不给奖品,说一声啊!俺急!!![/quote 发表:

别急,还有下面的问题帮我解决一下:
程序如下:
#typedef struct
{
char name[11];
int  type;
}APPLE;

#typedef sturct
{
APPLE *apple;
NODE *next;
}NODE;

main()
{
    NODE *pHead = NULL, pNext = NULL;
/*取数据*/
getdata( &pHead );

/* 打印数据 */
for( pNext=pHead; pNext; pNext = pNext->;next )
{
    printf( “the struct member a=[%s]\n”, pNext->;apple->;a );
}
}

int  getdata( NODE **pHead )
{
    int i = 0;
APPLE *pApple = NULL;
NODE *pNode = NULL, *pNext = NULL;

While( i++<1000)
{
pApple = malloc( sizeof( APPLE ));
pNode  = malloc( sizeof( NODE ));

memset( pApple, 0x00, sizeof( APPLE ));
memset( pNode, 0x00, sizeof( NODE ));

pNode->;apple = pApple;

strcpy( pApple->;a, “apple” );
pApple->;type = 0;

if( pHead == NULL )
   pHead = pNode;
else
    pNext->;next = pNode;

pNext = pNode;
}
}

此程序在ibmM85机器编译通过并且正确运行,但移植到ibm690机器上后出现内存乱的情况,后来我们发现如果在申请内存的时候不用sizeof,代之一个固定值50则内存一切正常。郁闷,还请wz25和诸位大虾看一下。

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-03-02 17:06 |只看该作者

二叉树用法

原帖由 "dongfangyu" 发表:
pNext->;apple->;a );
}
}

int  getdata( NODE **pHead )
{
    int i = 0;
APPLE *pApple = NULL;
NODE *pNode = NULL, *pNext = NULL;

While( i++<1000)
{
pApple = malloc( sizeof( APPLE ..........

typedef前面加一个#号什么意思呀?
你是不是加了什么预编译指令,使得结构的对齐规则改变了?
应该是这个问题。

论坛徽章:
0
7 [报告]
发表于 2004-03-03 09:30 |只看该作者

二叉树用法

对不起,笔误。typedef前面不应该有#号,谢谢lenovo。我没有加预编译指令,出现这种情况后,我们也考虑是字节对齐的问题,也试着用过paragma pack,但好像不起作用,问题继续出现。我觉得是不是两台机器的安装有哪些地方不一致,m85机器时32位的,690机器是64位的,但都安装的是aix4。3,32位的。编译器也是32位的c编译器。

论坛徽章:
0
8 [报告]
发表于 2004-03-03 17:44 |只看该作者

二叉树用法

自己顶一下

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
9 [报告]
发表于 2004-03-03 17:50 |只看该作者

二叉树用法

你在两个机子上分别用sizeof看一下,
它们的大小是否相同。

论坛徽章:
0
10 [报告]
发表于 2004-03-04 10:09 |只看该作者

二叉树用法

相同,大小都是187个字节(原程序)
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP