查找键值为key的元素

; 
;查找键值为key的元素
; author:  wangguolaing
; date:  revised 4/14

.386
.MODEL FLAT

INCLUDE io.h
includelib Kernel32.lib
ExitProcess PROTO NEAR32 stdcall, dwExitCode:DWORD

cr          EQU    0dh  
Lf          EQU    0ah   
maxNbrs     EQU    100   

.STACK      4096

.DATA
Array    DWORD   23,12,5,-78,27,33,4,32
count    DWORD   ?
Lable    BYTE    cr,Lf,'Can not find the key',cr,Lf,Lf,0

keyLable BYTE    cr,Lf,Lf,'The key is in : '
su       BYTE    11 DUP (?)

.CODE
_start:
       mov eax,27          ;键值key
       mov edx,0
       lea ebx,Array

whilenot    :  
             inc edx
             ;mov ecx,count
             cmp edx,9
             je  endthat
     
             cmp eax,[ebx]
             je endwhile
             add ebx,4
             jmp whilenot
             
endwhile    :     
            mov eax,edx
            dtoa su,eax
            output keyLable
            jmp quit

endthat     :
             output Lable
            

quit:       INVOKE ExitProcess, 0   ; exit with return code 0

PUBLIC _start                       ; make entry point public
            END                     ; end of source code

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设哈希表的实现是使用数组和链表的组合,具体步骤如下: 1. 通过哈希函数计算出key对应的哈希h; 2. 根据哈希h找到数组中的对应位置p; 3. 在位置p处的链表中遍历查找,如果找到了key元素,则将该元素设为value,并返回修改后的哈希表; 4. 如果在链表中没有找到key元素,则创建一个新的对,插入到链表的头部,并返回修改后的哈希表。 下面是一个简单的Python示例代码: ``` class Node: def __init__(self, key, value): self.key = key self.value = value self.next = None class HashTable: def __init__(self, size): self.size = size self.table = [None] * size def hash(self, key): return hash(key) % self.size def set(self, key, value): h = self.hash(key) node = self.table[h] while node: if node.key == key: node.value = value return self node = node.next new_node = Node(key, value) new_node.next = self.table[h] self.table[h] = new_node return self ``` 调用set方法即可将哈希表中key元素设定改为value。例如: ``` ht = HashTable(10) ht.set('apple', 2).set('banana', 3).set('orange', 4) print(ht.table) # 将为'banana'的元素设定改为5 ht.set('banana', 5) print(ht.table) ``` 输出结果: ``` [None, <__main__.Node object at 0x7f9e9f0e8a30>, <__main__.Node object at 0x7f9e9f0e8a90>, None, None, <__main__.Node object at 0x7f9e9f0e8ac0>, None, None, None, None] [None, <__main__.Node object at 0x7f9e9f0e8a30>, <__main__.Node object at 0x7f9e9f0e8a90>, None, None, <__main__.Node object at 0x7f9e9f0e8ac0>, None, None, None, None] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值