小白超详细总结----数据结构与算法(三)

如何实现栈
栈中先进去的数最后被弹出。

class Stack():
    def __init__(self):
        self.items=[]###采用数组的方式实现栈,栈空间结构连续
    def is_empty(self):
        return len(self.items)==0
    def top(self):#弹栈
        if not self.is_empty():
            return self.items[len(self.items-1)]
    def size(self):
        return len(self.items)
    def pop(self):压栈
        if self.is_empty():
            return None
        else:
            return self.items.pop()
    def push(self,data):
        self.items.append(data)

队列和栈不同,在队列中,先进去的数先出来,一端(队头)插入一端(对胃)删除。
数组方式实现队列

class Queue():
    def __init__(self):
        self.arr=[]
        self.font=None
        self.rear=None
    def is_empty(self):
        return self.font==self.rear
    def size(self):
        if self.is_empty():
            return None
        else:
            return self.rear-self.font
    def geFont(self):
        if self.is_empty(self):
            return None
        else:
            return self.items[self.font]
    def deQueue(self):
        if self.rear>self.font:
            self.font=self.font+1
        else:
            print("队列已空")
    def enqueue(self,data):
        self.arr.append[data]
        self.rear=aelf.rear+1

链表方式实现队列

class Lnode():
    def __init__(self,data):
        self.data=data
        self.next=None
class Queue():
    def __init__(self):
        self.font=None
        self.rear=None
    def is_empty(self):
        if self.font==self.rear:
            return True
        else:return False
    def size(self):
        p=self.font
        count=0
        while p!=None:
            count+=1
            p=p.next
        return count
    def enQueue(self,data):
        tmp=Lnode(data)
        if self.font==None:
            self.font=self.rear=tmp
        else:
            self.rear.next=tmp
            self.rear=tmp
    def deQueue(self):
        if self.font==None:
            print("队列为空")
        else:
            self.font=self.font.next
    def getfont(self):
        if self.font==None:
            return None
        else:
            return self.font.data
    def getback(self):
        if self.rear==None:
            return None
        else:
            return self.rear.data
if  __name__=="__main__":
    queue=Queue()
    queue.enQueue(1)
    queue.enQueue(2)
                
    
            

b本来想早点更完,可是,前几天在准备面试的东西,有点耽搁了。最近把面试的经验总结一下

猜你喜欢

转载自blog.csdn.net/qq_43440040/article/details/107894526
今日推荐