面向对象编程(二)三大特性(练习)

匿名 (未验证) 提交于 2019-12-02 23:42:01

1.栈是限制在一端进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,
另一固定端称为“栈底”,当栈中没有元素时称为“空栈”。向一个栈内插入元素称为是进栈,push;
从一个栈删除元素称为是出栈,pop。特点 :后进先出(LIFO)。
栈的封装

class Stack(object):     def __init__(self):         self.stack = []     def __len__(self):         return len(self.stack)     def push(self, item):         self.stack.append(item)         print('元素【%s】入栈成功' %(item))     def pop(self):         if not self.is_empty():             item = self.stack.pop()             print('元素【%s】出栈成功' %(item))         # else:         #     raise Exception('栈为空')     def top(self):         if not self.is_empty():             item = self.stack[-1]             print('栈顶元素为:【%s】' %(item))         # else:         #     raise Exception('栈为空')     def length(self):         return len(self.stack)     def is_empty(self):         return len(self.stack) == 0   stack = Stack() stack.push(5) stack.push(3) print(len(stack)) stack.pop() stack.is_empty() stack.pop() stack.is_empty() stack.pop() stack.push(7) stack.push(9) stack.pop() stack.top() print(len(stack)) stack.pop() stack.push(6) stack.push(8) stack.pop() 


2.队列是限制在一端进行插入操作和另一端删除操作的线性表,允许进行插入操作的一端称为“队尾”,
允许进行删除操作的一端称为“队头”,,当队列中没有元素时称为“空队”。特点 :先进先出(FIFO)。
队列的封装

class Queue(object):     def __init__(self):         self.__queue = []     def __len__(self):         #求队列长度         return len(self.__queue)     def is_empty(self):         #判断队列是否为空         return len(self.__queue) == 0     def enqueue(self,item):         #入队操作         self.__queue.append(item)         print('元素【%s】入对成功' %(item))     def first(self):         if not self.is_empty():             item = self.__queue[0]             print('对头元素为:【%s】' % (item))         else:             raise Exception('队列为空')     def dequeue(self):         if not self.is_empty():             item = self.__queue.pop(0)             print("元素【%s】出对成功" %(item))         else:             raise Exception('队列为空')     def display(self):         return self.__queue queue = Queue() queue.enqueue(5) queue.enqueue(3) print(queue.display()) print(len(queue)) queue.dequeue() queue.is_empty() queue.dequeue() queue.is_empty() # queue.dequeue() queue.enqueue(7) queue.enqueue(9) queue.first() queue.enqueue(4) print(len(queue)) queue.dequeue() 

文章来源: https://blog.csdn.net/cainiaoayue/article/details/91888133
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!