有一组赋值操作表达式,比如:
valu1 = 1;
valu2 = 2;
valu3 = 3;
valu4 = valu1;
valu5 = valu1;
valu6 = valu4;
valu8 = valu7;
valu9 = valu2;
valu10 = valu8;
…………….
以上表达式的操作结果应该是:
valu1,valu4,valu5,valu6 = 1;
valu2 ,valu9= 2;
valu3 = 3;
valu7,valu8,valu10 = 未赋值;
实现:编写程序预测一组赋值操作表达式的执行结果,分组返回有相同值的变量名及值结果。
要求:注意程序的正确性、稳定性和执行效率。
/********************************************************************************/
纯粹的算法设计题目,我个人觉得有些难度,贴出来请大伙多指点
valu1 = 1;
valu2 = 2;
valu3 = 3;
valu4 = valu1;
valu5 = valu1;
valu6 = valu4;
valu8 = valu7;
valu9 = valu2;
valu10 = valu8;
…………….
以上表达式的操作结果应该是:
valu1,valu4,valu5,valu6 = 1;
valu2 ,valu9= 2;
valu3 = 3;
valu7,valu8,valu10 = 未赋值;
实现:编写程序预测一组赋值操作表达式的执行结果,分组返回有相同值的变量名及值结果。
要求:注意程序的正确性、稳定性和执行效率。
/********************************************************************************/
纯粹的算法设计题目,我个人觉得有些难度,贴出来请大伙多指点
节点{key, type, value} key:关键字 type:枚举{未定|地址|数值} value:{数值|地址}算法
while(有节点)
{
call NodeFunc(节点) //处理节点
}function NodeFunc(节点)
{
if (节点.type == 未定) return null; //防止类似 a=b b=c c=a 的循环定义,导致递不归 if (节点.type == 地址)
{
节点.type = 未定
节点.value = NodeFunc(节点.value)
节点.type = 数值
}
else
{
return 节点.value;
}
}
继续讨论..
/**********************************
jamesfay(James Fay)定义的数据结构中,为防止循环定义使用了if (节点.type == 未定) return null;
个人感觉没有必要,当出现变量对变量之间的赋值如valu2=valu1的操作时候,此时valu1如不是一个已知的值(地址)可返回为valu1=valu2=未初始化。
/**********************************
个人见解,有不对的地方,请多指教ps:楼下的讨论时候能否给出伪码算法.。本人想偷懒 :)
没有算法!
在oracle建表:
value_id value_name father_id然后利用oracle的关系查询!好象是startwith关键字 ^_^