zoukankan      html  css  js  c++  java
  • 数据结构基础入门

    python版本实现代码如下所示:

    #定义一个栈Stack()
    class Stack:
    def __init__(self):
    self.stack=[]
    def push(self,element):
    self.stack.append(element)
    def pop(self):
    return self.stack.pop()
    def get_top(self):
    if len(self.stack)>0:
    return self.stack[-1]
    else:
    return None
    def is_empty(self):
    return len(self.stack)==0
    s=Stack()
    s.push(1)
    s.push(2)
    s.push(3)
    print(s.pop())
    print(s.get_top())

    #栈的具体使用:使用栈解决括号匹配问题
    def brace_match(s):
    match={"}":"{","]":"[",")":"("}
    stack=Stack()
    for ch in s:
    if ch in ["(","{","["]:
    stack.push(ch)
    else:
    if stack.is_empty():
    return False
    elif stack.get_top() == match[ch]:
    stack.pop()
    else:
    return False
    if stack.is_empty():
    return True
    else:
    return False

    print(brace_match("(((([[[]]]))))"))

    #队列的实现-环形队列
    class Q:
    def __init__(self,size=100):
    self.q=[0 for _ in range(size)]
    self.size=size
    self.rear=0
    self.front=0

    def push(self,elment):
    if not self.is_filled():
    self.rear=(self.rear+1) % self.size
    self.q[self.rear]=elment
    else:
    raise IndexError("Q is filled")
    def pop(self):
    if not self.is_empty():
    self.front=(self.front+1) % self.size
    return self.q[self.front]
    else:
    raise IndexError("Q is empty")
    def is_empty(self):
    return self.rear==self.front
    def is_filled(self):
    return (self.rear+1) % self.size==self.front

    q=Q(5)
    for i in range(4):
    q.push(i)
    print(q.is_filled())
    print(q.pop())
    print(q.pop())
    print(q.pop())
    q.push(4)
    print(q.is_filled())
  • 相关阅读:
    C# 中 finally 的用法
    相似度算法(转载)
    OpenCV 安装与调试
    win7 debug 工具
    wpf 登录时显示状态动态图
    C# 比较两张图片是否完全相同
    ABSD 基于架构的软件设计方法方法简介(摘抄)
    基于SQL Server的简单数据同步方案
    软件:产品和过程的统一(转)
    cpp extern 关键字用法
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/12430321.html
Copyright © 2011-2022 走看看