佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

12
返回列表 发新帖
楼主: jangancari

[原创]编程技术动脑筋 - 题目1, 题目2

[复制链接]
 楼主| 发表于 24-3-2005 05:17 AM | 显示全部楼层
白日梦 于 22-3-2005 06:56 PM  说 :
就是 AND / OR 的情况下,我之前看漏了。

还有一个"ELSE" 的情况 。。

读进 Array(reccount(),3), Array(recno(),3) 等于 _node,
_node = 0 是 \root
_node = 1 是 \\child node level 1
_node = 2 是 \\\child node level 2


以上的coding 我不太明白。 我所谓的关键就是堆叠(stack), 我是用stack 来做到的。

chewhg 于 23-3-2005 04:28 AM  说 :
我在想,题目二的table设计有问题
象以下的这个node,我们已经不需要他的parent了,
只需要记录他本身的node就可以了,因为从它的
node已经很清楚说明了他的parents是谁了。

node
----
AAA  --> paren ...


这不是table 设计的问题, 这是我为了让大家明白。 在真实的情况下, parent 和child 都是item no , 不是这么容易的。不过你的偷鸡方式不错 。。

chewhg 于 23-3-2005 04:34 AM  说 :
题目一,要用到stack的push & pop,不是吗?

不需要 , 就是用一个flag 来控制。

[ Last edited by jangancari on 23-3-2005 at 03:20 PM ]
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 24-3-2005 08:01 AM | 显示全部楼层
reylina_g 于 21-3-2005 08:51 PM  说 :
RPG/400可以用 RECURSIVE 和 PASS VALUE BY REFERENCE 吗 ?

不能, 编译时会有错误。


johe07 于 21-3-2005 10:14 PM  说 :
那么,它们之间的优弱点呢?怎样的情况下用它们其中一个呢?
我们竟常用的方法是pass by value的方法来取得varial 的值,是吗?
(我是不是在问很笨的问题啊?)


一般上, 我们是用pass by value 的方式, string 的variable 就是pass by reference 。


Pass by value  
速度 : 慢


Pass by reference
速度 : 快


pass by reference , 我们是存取着original 的资料, 所以改变内容的话, 其它refer 这个variable 的内容都会被改掉。
      
例子:
=======
     Ref.       Value               
    ____________________   
    | 2000   | 'A'     |   charA <- variable
    |--------+---------|
    | 2001   | 'B'     |   charB <- variable
    |--------+---------|
    |        |         |
    |--------|---------|   

以下是类似 C 的pseudo code

  X = &charA
  Y = &charA

printf *X        output = 'A'
printf *Y        output = 'A'

如果我们改变 X refer 的内容
   *X = 'Q'            

printf 的结果 :

printf *X        output = 'Q'
printf *Y        output = 'Q'
回复

使用道具 举报

发表于 24-3-2005 08:06 AM | 显示全部楼层
大概大概懂了吧。。

谢谢你,Jangancari
回复

使用道具 举报

发表于 24-3-2005 11:44 PM | 显示全部楼层
第二題你說用STACK是指用STACK模擬RECURSIVE的PREORDER來輸出嗎?

如果RECURSIVE的VERSION,大概如下(假設輸入進General Tree)

void preorder(binnode *nptr, int level)
{
        int i = 0;
        if (nptr == NULL) return;
        while (i++ < level)
        cout << ".";
        cout << nptr->data << endl;
        level++;
        for each child node
        preorder(child node, level);
}

[ Last edited by cristiano~7 on 24-3-2005 at 11:48 PM ]
回复

使用道具 举报

 楼主| 发表于 3-4-2005 03:43 AM | 显示全部楼层
cristiano~7 于 24-3-2005 09:44 AM  说 :
第二題你說用STACK是指用STACK模擬RECURSIVE的PREORDER來輸出嗎?

是。

你的recursive写得很精彩! 我当时也一直在想recursive 要如何写,不过无论如何,我们用的电脑语言不支援recursive,所以也没有花太多时间。
回复

使用道具 举报

发表于 10-4-2005 11:17 AM | 显示全部楼层
这是我找到的一格sample code
是教学pointer的用法
可是我很不明白
请问大家有谁可以为以下做解释

void main()
{
    float x, y;                                /* x and y are of float type             */
    float *fp, *fp2;                        /* fp and fp2 are pointers to float  */

    x = 6.5;                                /* x now contains the value 6.5             */

                                        /* print contents and address of x   */
    printf("Value of x is %f, address of x %ld\n", x, &x);
        
    fp = &x;                                /* fp now points to location of x    */
               
                                        /* print the contents of fp             */
    printf("Value in memory location fp is %f\n", *fp);

                                        /* change content of memory location */
    *fp = 9.2;
    printf("New value of x is %f = %f \n", *fp, x);

                                        /* perform arithmetic                      */
    *fp = *fp + 1.5;
    printf("Final value of x is %f = %f \n", *fp, x);

                                        /* transfer values                   */
    y = *fp;
    fp2 = fp;
    printf("Transfered value into y = %f and fp2 = %f \n", y, *fp2);
}

This is Pointers in C......
有人可以解释一下吗?
回复

使用道具 举报

Follow Us
 楼主| 发表于 11-4-2005 01:46 AM | 显示全部楼层
院长 于 9-4-2005 09:17 PM  说 :
这是我找到的一格sample code
是教学pointer的用法
可是我很不明白
请问大家有谁可以为以下做解释
                 

要明白pointer , 要先明白variable 如何收藏在memory 里。

每一个variable 都收藏在memory 的一个位置, 而这个位置通称为address。




                                 address     contain
                                 ________________________
x = 6.5;     在memory 中的X     |   1567   |     6.5     |     1567 是假设的。


fp = &x ;    fp 现在 = 1567 (不是6.5, 而是6.5 在memory 的address )
                 & 这operator 会 return address。


*fp = 9.2;   这表示, 在fp  的memory 位置的内容(contain) 设为 9.2。
                  这样一来, X 的 内容 间接变成9.2


明白吗? 接下来的fp2, y , 自己尝试明白 。。 提出你的疑问, 我有时间就帮你。

[ Last edited by jangancari on 10-4-2005 at 12:40 PM ]
回复

使用道具 举报

发表于 11-4-2005 02:04 AM | 显示全部楼层
jangancari 于 11-4-2005 01:46  说 :
                  

要明白pointer , 要先明白variable 如何收藏在memory 里。

每一个variable 都收藏在memory 的一个位置, 而这个位置通称为address。




                                       ...


可以解释define variable *fp
那么 * 在这里是代表什么?
回复

使用道具 举报


ADVERTISEMENT

 楼主| 发表于 11-4-2005 02:39 AM | 显示全部楼层
院长 于 10-4-2005 12:04 PM  说 :


可以解释define variable *fp
那么 * 在这里是代表什么?


float *fp    是declare 一个 float 的pointer , variable 名是fp,
或者这样来理解   contain(也就是 * ) of fp is a variable type float 。
                       
这样的话, 应该比较容易明白了吧。。
回复

使用道具 举报

发表于 11-4-2005 08:43 AM | 显示全部楼层
pointer = 指标

简单来讲,记忆体地址的指标
回复

使用道具 举报

发表于 11-4-2005 09:44 AM | 显示全部楼层
jangancari 于 11-4-2005 02:39  说 :


float *fp    是declare 一个 float 的pointer , variable 名是fp,
或者这样来理解   contain(也就是 * ) of fp is a variable type float 。
                       
这样的话, 应该比较容易明白了吧 ...


嗯。。。
好像明白啦。
最后的那段呢?
*fp = *fp + 1.5
y = *fp
fp2 = fp

那么意思是不是
*fp = *fp + 1.5
所以
y = *fp
fp2 = *fp
是这样吗?
回复

使用道具 举报

 楼主| 发表于 11-4-2005 11:31 AM | 显示全部楼层
院长 于 10-4-2005 07:44 PM  说 :


嗯。。。
好像明白啦。
最后的那段呢?
*fp = *fp + 1.5
y = *fp
fp2 = fp

那么意思是不是
*fp = *fp + 1.5
所以
y = *fp
fp2 = *fp
是这样吗?


*fp = *fp + 1.5    ; 这个你应该明白吧 。。 fp 指的内容 = fp 指的内容 + 1.5

y = *fp           ;    这个你自己尝试


fp2 = fp    ; 这个你搞错了  , fp2 和fp 一样都是pointer 。


Memory 中的情况
                          
                                 address     contain
                                 ________________________
x = 6.5;     在memory 中的X     |   1567   |     6.5     |     1567 是假设的。


                                 address     contain
                                 ________________________
                          X     |   1567   |     6.5     |     1567 是假设的。



                                 address     contain
                                 ________________________
fp 也是收在memory里       fp    | xxxxx    |    1567     |     

xxxxx 这里不重要,所以我不显示


当fp2=fp ,   => fp2 = fp = 1567

因为在1567 这memory 位置收的是 X 的内容, 所以fp2 现在也指着 X
                                 ________________________
                           fp2   | yyyyy   |    1567     |   

yyyyy 这里不重要,所以我不显示
回复

使用道具 举报

发表于 12-5-2005 12:29 PM | 显示全部楼层
请问怎样安装 squirrelmail change password plugin
在网页上看到很多不同的版本
不知道那一种适合我用
我安装的是 fc2 + sendmail + vpopmail + squirrelmail 1.4x

[ Last edited by 院长 on 16-5-2005 at 09:51 AM ]
回复

使用道具 举报

发表于 14-5-2005 08:16 PM | 显示全部楼层
請問你們懂Win32 API嗎?
我遇到難題。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 23-11-2024 03:53 PM , Processed in 0.113728 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表