15 个解决方案
#1
最后一个的index就是count-1吧.remove掉不行么?
#2
应该怎样写呢,能否给个代码吗?
#3
HashTable ht=new HashTable()
ht.Add()...;
ht.remove(ht.keys.count);
请问是这样的吗?
ht.Add()...;
ht.remove(ht.keys.count);
请问是这样的吗?
#4
请大家说一下啊
#5
不是
Hashtable中元素的顺序不一定是你加入的顺序。
即然像栈那样的,为什么不用Stack呢?
Hashtable中元素的顺序不一定是你加入的顺序。
即然像栈那样的,为什么不用Stack呢?
#6
HashTable ht=new HashTable()
ht.Add()...;
ht.remove(ht[j.Keys[j.Keys.Count - 1]]);
试一下。
ht.Add()...;
ht.remove(ht[j.Keys[j.Keys.Count - 1]]);
试一下。
#7
HashTable是散列存储 何为散列存储?
散列方法的主要思想是根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存入到此存储单元中。检索时,用同样的方法计算地址,然后到相应的单元里去取要找的结点。通过散列方法可以对结点进行快速检索。散列(hash,也称“哈希”)是一种重要的存储方式,也是一种常见的检索方法。
因此其访问机制不是基于地址偏移量或首尾指针来实现的
除非你将key值记录为数据的序号 以此来标示当前数据的顺序性
否则无法实现此效果……
散列方法的主要思想是根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存入到此存储单元中。检索时,用同样的方法计算地址,然后到相应的单元里去取要找的结点。通过散列方法可以对结点进行快速检索。散列(hash,也称“哈希”)是一种重要的存储方式,也是一种常见的检索方法。
因此其访问机制不是基于地址偏移量或首尾指针来实现的
除非你将key值记录为数据的序号 以此来标示当前数据的顺序性
否则无法实现此效果……
#8
hashtable 跟栈和队列的思路是完全不同的,要想删除最后一个加进来的,必须找到他的KEY。然后
C#
public virtual void Remove (
Object key
)
(msdn)
C#
public virtual void Remove (
Object key
)
(msdn)
#9
或者用另外的变量保存这个最后添加的值
#10
thanks!
#11
HashTable ht=new HashTable()
ht.Add()...;
ht.remove(ht[j.Keys[j.Keys.Count - 1]]);
试一下。
老兄,j是什么意思啊
ht.Add()...;
ht.remove(ht[j.Keys[j.Keys.Count - 1]]);
试一下。
老兄,j是什么意思啊
#12
那你直接用栈嘛,或者将最后一个加入的key保存起来
#13
好的,我明白了,谢谢大家了!
#14
直接用HashTable不可能,不过你可以用stack来存一下加入HashTable的顺序!
#15
当然,如果不是有很频繁的轮循查找,那么也没有必要用HashTable,直接用stack好了
#1
最后一个的index就是count-1吧.remove掉不行么?
#2
应该怎样写呢,能否给个代码吗?
#3
HashTable ht=new HashTable()
ht.Add()...;
ht.remove(ht.keys.count);
请问是这样的吗?
ht.Add()...;
ht.remove(ht.keys.count);
请问是这样的吗?
#4
请大家说一下啊
#5
不是
Hashtable中元素的顺序不一定是你加入的顺序。
即然像栈那样的,为什么不用Stack呢?
Hashtable中元素的顺序不一定是你加入的顺序。
即然像栈那样的,为什么不用Stack呢?
#6
HashTable ht=new HashTable()
ht.Add()...;
ht.remove(ht[j.Keys[j.Keys.Count - 1]]);
试一下。
ht.Add()...;
ht.remove(ht[j.Keys[j.Keys.Count - 1]]);
试一下。
#7
HashTable是散列存储 何为散列存储?
散列方法的主要思想是根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存入到此存储单元中。检索时,用同样的方法计算地址,然后到相应的单元里去取要找的结点。通过散列方法可以对结点进行快速检索。散列(hash,也称“哈希”)是一种重要的存储方式,也是一种常见的检索方法。
因此其访问机制不是基于地址偏移量或首尾指针来实现的
除非你将key值记录为数据的序号 以此来标示当前数据的顺序性
否则无法实现此效果……
散列方法的主要思想是根据结点的关键码值来确定其存储地址:以关键码值K为自变量,通过一定的函数关系h(K)(称为散列函数),计算出对应的函数值来,把这个值解释为结点的存储地址,将结点存入到此存储单元中。检索时,用同样的方法计算地址,然后到相应的单元里去取要找的结点。通过散列方法可以对结点进行快速检索。散列(hash,也称“哈希”)是一种重要的存储方式,也是一种常见的检索方法。
因此其访问机制不是基于地址偏移量或首尾指针来实现的
除非你将key值记录为数据的序号 以此来标示当前数据的顺序性
否则无法实现此效果……
#8
hashtable 跟栈和队列的思路是完全不同的,要想删除最后一个加进来的,必须找到他的KEY。然后
C#
public virtual void Remove (
Object key
)
(msdn)
C#
public virtual void Remove (
Object key
)
(msdn)
#9
或者用另外的变量保存这个最后添加的值
#10
thanks!
#11
HashTable ht=new HashTable()
ht.Add()...;
ht.remove(ht[j.Keys[j.Keys.Count - 1]]);
试一下。
老兄,j是什么意思啊
ht.Add()...;
ht.remove(ht[j.Keys[j.Keys.Count - 1]]);
试一下。
老兄,j是什么意思啊
#12
那你直接用栈嘛,或者将最后一个加入的key保存起来
#13
好的,我明白了,谢谢大家了!
#14
直接用HashTable不可能,不过你可以用stack来存一下加入HashTable的顺序!
#15
当然,如果不是有很频繁的轮循查找,那么也没有必要用HashTable,直接用stack好了