找回密码
 点一下
查看: 937|回复: 6

哈希表的问题(教材没看明白)

[复制链接]
发表于 2010-7-23 09:14:41 | 显示全部楼层 |阅读模式
globals
hashtable HT = null
endglobals
function Init takes nothing returns nothing
call FlushParentHashtable( HT )
set HT = InitHashtable()
endfunction
function CreateArray3 takes integer index, integer size1, integer size2, integer size3 returns nothing
local integer i = 0
local integer j = 0
loop
exitwhen i >= size1
call SaveHashtableHandle( HT, index, i, InitHashtable() )    这里好像是在哈希列表里保存一个哈希列表
set i = i + 1
endloop
endfunction
function SaveArray3 takes integer index, integer index1, integer index2, integer index3, integer value returns nothing
local hashtable child = LoadHashtableHandle( HT, index, index1 )  
call SaveInteger( child, index2, index3, value )    在child保存一个整数
set child = null   删除child,那么保存的整数还存在么??不知道怎么回事,是错误么??
endfunction
function LoadArray3 takes integer index, integer index1, integer index2, integer index3 returns integer
local hashtable child = LoadHashtableHandle( HT, index, index1 )
local integer value = LoadInteger( child, index2, index3 )
set child = null         
return value         从保存在哈希列表里的哈希列表提取整数,没什么问题
endfunction
function DestroyArray3 takes integer index, integer size1, integer size2, integer size3 returns nothing
local integer i = 0
local integer j = 0
loop
exitwhen i >= size1
call FlushParentHashtable( LoadHashtableHandle( HT, index, i ) )
set i = i + 1
endloop
call FlushChildHashtable( HT, index )
endfunction
发表于 2010-7-23 09:15:53 | 显示全部楼层
set null又不是删除……
这个对象依然存在的,只是没有变量去引用他而已
回复

使用道具 举报

 楼主| 发表于 2010-7-23 09:47:57 | 显示全部楼层
set null不是说让指针变成空指针么??
回复

使用道具 举报

发表于 2010-7-23 09:52:24 | 显示全部楼层
就算是变为空指针,原来的对象还是存在的啊
回复

使用道具 举报

 楼主| 发表于 2010-7-23 10:02:03 | 显示全部楼层
你说的对象是指针指向的那个东西么??对不起,我治学了C,没学C++或者JAVA,对象这种概念不是很熟,能说清楚一点么??
话说指向的那个东西确实存在
回复

使用道具 举报

发表于 2010-7-23 10:28:31 | 显示全部楼层
可以这样描述变量child是一个指路牌,实际的hashtable是一个建筑,通过指路牌能找到建筑,但是如果用油漆覆盖了指路牌的内容,那幢建筑不会因此消失吧?handle变量只是个指路拍,存储的是个整数,是实质存储内容在表中的序号
回复

使用道具 举报

 楼主| 发表于 2010-7-23 10:51:35 | 显示全部楼层
明白了,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-9-28 14:14 , Processed in 0.031922 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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