1. The "search" method of the code returns the node that was found or "None" 2. The "Node" implementation has a "key" and "value" member

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

I am trying to implement a hash table of key-value pairs, where the key determines the location of the pair in the hash table, the key is what the hash function is used on. The hash table that I am trying to implement will use separate chaining  (with unordered linked lists) for collision resolution.

 

I need help changing the code where:

1. The "search" method of the code returns the node that was found or "None"

2. The "Node" implementation has a "key" and "value" member

 

This is what I have so far

class Node:

  def __init__(self,initdata):

    self.data = initdata

    self.next = None

 

  def getData(self):

    return self.data

 

  def getNext(self):

    return self.next

 

  def setData(self,newdata):

    self.data = newdata

 

  def setNext(self,newnext):

    self.next = newnext

 

 

class UnorderedList:

 

  def __init__(self):

    self.head = None

 

  def isEmpty(self):

    return self.head == None

 

  def add(self,item):

    temp = Node(item)

    temp.setNext(self.head)

    self.head = temp

 

  def size(self):

    current = self.head

    count = 0

    while current != None:

      count = count + 1

      current = current.getNext()

 

    return count

 

  def search(self,item):

    current = self.head

    found = False

    while current != None and not found:

      if current.getData() == item:

        found = True

      else:

        current = current.getNext()

 

    return found

 

  def remove(self,item):

    current = self.head

    previous = None

    found = False

    while not found:

      if current.getData() == item:

        found = True

      else:

        previous = current

        current = current.getNext()

 

    if previous == None:

      self.head = current.getNext()

    else:

      previous.setNext(current.getNext())

 

   

  def printAll(self):

    current = self.head

    while current != None:

      print(current.getData(), end=' ')

      current = current.getNext()

    print()

 

if __name__ == "__main__":

  mylist = UnorderedList()

  mylist.add(31)

  mylist.add(77)

  mylist.add(17)

  mylist.add(93)

  mylist.add(26)

  mylist.add(54)

  mylist.printAll()

  print(mylist.size())

  mylist.add(100)

  mylist.printAll()

  print(mylist.size())

  mylist.remove(54)

  mylist.printAll()

  print(mylist.size())

  mylist.remove(93)

  mylist.printAll()

  print(mylist.size())

  mylist.remove(31)

  mylist.printAll()

  print(mylist.size())

 

 

*Subject: Python Programming

Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 3 steps with 1 images

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY