program Doubly Linked List.py
| class Node(object): |
| def __init__ (self, d, n = None, p = None): |
| self.data = d |
| self.next_node = n |
| self.prev_node = p |
| def get_next (self): |
| return self.next_node |
| def set_next (self, n): |
| self.next_node = n |
| def get_prev (self): |
| return self.prev_node |
| def set_prev (self, p): |
| self.prev_node = p |
| def get_data (self): |
| return self.data |
| def set_data (self, d): |
| self.data = d |
| class LinkedList (object): |
| def __init__(self, r = None): |
| self.root = r |
| self.size = 0 |
| def get_size (self): |
| return self.size |
| def add (self, d): |
| new_node = Node (d, self.root) |
| if self.root: |
| self.root.set_prev(new_node) |
| self.root = new_node |
| self.size += 1 |
| def remove (self, d): |
| this_node = self.root |
| while this_node: |
| if this_node.get_data() == d: |
| next = this_node.get_next() |
| prev = this_node.get_prev() |
| if next: |
| next.set_prev(prev) |
| if prev: |
| prev.set_next(next) |
| else: |
| self.root = this_node |
| self.size -= 1 |
| return True # data removed |
| else: |
| this_node = this_node.get_next() |
| return False # data not found |
| def find (self, d): |
| this_node = self.root |
| while this_node: |
| if this_node.get_data() == d: |
| return d |
| else: |
| this_node = this_node.get_next() |
| return None |
| myList = LinkedList() |
| myList.add(2) |
| myList.add(4) |
| myList.add(10) |
| myList.remove(4) |
| print(myList.remove(10)) |
| # Doubly Linked List | https://github.com/fanihusna109/Doubly-Linked-List.py/blob/master/Doubly%20Linked%20List.py https://www.istn.ac.id/ |
||||||||||||||||||||||||||||
Tidak ada komentar:
Posting Komentar