#遍历整个列表 class singlelistle(object): def __init__(self,node=None): self.head = node def is_empty(self): self.head == None def length(self): cur=self._head count=1 while cur !=None: count+=1 cur=cur.next return count def travel(self): cur=self._head while cur !=None: print(cur.elemt) cur=cur.next pass #在链表尾部添加元素 def append(self,item): node=Node(item) if self.is_empty(): self.head=node else: cur=self._head while cur.next != None: cur=cur.next cur.next=node if __name__ =="__main__": ll=singlelistle print(ll.is_empty()) ll.append(1) ll.append(2) ll.append(3) ll.append(4)
栈
class Stack(object): def __init__(self): self.__list=[] def push(self,item): """添加一个新的元素到栈顶""" self.__list.append(item) def pop(self): """"弹出栈顶元素""" return self.__list.pop() def peek(self): """"返回栈顶元素""" if self.__list: return self.__list[-1] else: return None def is_empty(self): """判断栈是否为空""" return self.__list==[] def size(self): return len(self.__list) if __name__ =="__main__": s=Stack() s.push(1) s.push(2) s.push(3) s.push(4) print(s.pop()) print(s.pop()) print(s.pop()) print(s.pop())
队列
class Queue(object): def __init__(self): self.__list=[] def enqueue(self,item): """往队列中添加一个item元素""" self.__list.append(item) def dequeue(self): """从队列头部删除一个元素""" return self.__list.pop(0) def is_empty(self): """判断一个列表是否为空""" return self.__list==[] def size(self): return len(self.__list) if __name__ =="__main__": s=Queue() s.enqueue(1) s.enqueue(2) s.enqueue(3) s.enqueue(4) print(s.dequeue()) print(s.dequeue()) print(s.dequeue()) print(s.dequeue()) #输出结果为1 2 3 4