python算法和数据结构笔记--python下堆栈的实现及其应用

来源:互联网 发布:动量梯度下降算法 编辑:程序博客网 时间:2024/05/21 22:37

<Data Structures andAlgorithms in Python> Michael T.Goodrich,Roberto Tamassia,Michael H.Goldwasser 学习笔记,内容源自该书

在python下实现的堆栈数据结构以及在数学计算式括号匹配的应用

class ArrayStack:    def __init__(self):        self._data = []    def __len__(self):        return len(self._data)        def is_empty(self):        return len(self)==0    def push(self,element):        self._data.append(element)    def top(self):        if self.is_empty():            raise Empty('Stack is empty')        return self._data[-1]    def pop(self):        if self.is_empty():            raise Empty('Stack is empty')        return self._data.pop()    def showStack(self):        return self._datadef matchExp(exper):    S = ArrayStack()    left_braket = '([{'    right_braket = ')]}'    for i in exper:        if i in left_braket:            S.push(i)        elif i in right_braket:            if S.is_empty():                    return False            if right_braket.index(i) != left_braket.index(S.pop()):                    return False    return S.is_empty()matchExp('(3+4*(5+4)*5+674/234)')


阅读全文
1 0
原创粉丝点击