列表 鍊錶
1、棧 : filo(先進後出)
2、佇列 : fifo(先進先出)
#普通佇列:
'''class myquene(object):
def __init__(self,list = ):
self.__list = list
def size(self):
return len(self.__list)
def delete(self):
if self.size() == 0:
print("空,不能刪除")
else:
temp_delete = self.__list[0]
del self.__list[0]
return temp_delete
def insert(self,data):
def peek(self):
if self.size() == 0:
print("空")
else:
return self.__list[0]
m = myquene()
'''#優先順序佇列
'''class mypqueue(object):
def __init__(self,list = ):
self.__list = list
def size(self):
return len(self.__list)
def delete(self):
if self.size() == 0:
print("空,不能刪除")
else:
temp_delete = self.__list[0]
del self.__list[0]
return temp_delete
def insert(self,data):
if self.size() == 0:
else:
temp = -1
for i in range(len(self.__list)):
if self.__list[i] > data:
temp = i
break
if temp == -1:
else:
self.__list.insert(temp,data)
def peek(self):
if self.size() == 0:
print("空")
else:
return self.__list[0]
m = mypqueue()
m.insert(1)
m.insert(2)
m.insert(4)
m.insert(3)
print(m.delete())
print(m.delete())
print(m.delete())
print(m.delete())
'''#迴圈佇列
'''class xunhuan():
def __init__(self,list=,first=none,last=none):
self.__list = list
self.__first = first
self.__last = last
def size(self):
length = 0
if self.__last > self.__first:
length = self.__last - self.__first + 1
elif self.__first == self.__last and self.__last != none:
length = 1
elif self.__first == self.__last and self.__last == none:
length = 0
else:
length = len(self.__list) - (self.__first - self.__last - 1)
return length
def insert(self,data):
if self.size() == 0:
self.__first = 0
self.__last = 0
else:
if self.size() == len(self.__list):
self.__list.insert(self.__last+1,data)
self.__last = self.__last + 1
else:
if self.__last + 1 == len(self.__list):
self.__list[0] = data
self.__last = 0
else:
self.__list[self.__last + 1] = data
self.__last = self.__last + 1
def delete(self):
if self.size() == 0:
print("空,無法刪除")
elif self.size() == 1:
temp = self.__list[self.__first]
self.__first = none
self.__last = none
return temp
else:
temp = self.__list[self.__first]
if self.__first + 1 == len(self.__list):
self.__first = 0
else:
self.__first = self.__first + 1
return temp
def peek(self):
if self.size() == 0:
print("空")
else:
return self.__list[self.__first]
'''
1、中綴表示式轉字尾表示式
1)遇到運算元直接拼到字串
2)遇到運算子
a,遇到左括號
b,遇到右括號
c,遇到±
d,遇到*/
2、計算字尾表示式
class nullstackerror(baseexception):
def __init__(self):
super().__init__("null stack error !!!")
class mystack():
def __init__(self,len=0,list=):
self.__len = 0
self.__list = list
def push(self,data):
self.__len += 1
def pop(self):
temp = none
if self.__len == 0:
raise nullstackerror()
else:
temp = self.__list.pop()
self.__len -= 1
return temp
def peek(self):
if self.__len == 0:
raise nullstackerror()
else:
return self.__list[-1]
def peekq(self):
if self.__len == 0:
raise nullstackerror()
else:
return self.__list[::]
def length(self):
return self.__len
def middle2after(s=""):
str = ""
list =
for item in s:
if item.isalnum():
str += item
else:
if item == "(":
elif item == ")":
while list[-1] != "(":
str += list.pop()
list.pop()
elif item in "+-":
if len(list) == 0:
else:
while len(list) != 0 and list[-1] != "(":
str += list.pop()
elif item in "*/":
else:
print("錯了")
while len(list)!=0:
str += list.pop()
return str
def cal(s=""):
stack =
for item in s:
if item.isalnum():
else:
a = float(stack.pop())
b = float(stack.pop())
if item == "-":
c = b - a
elif item == "+":
c = b + a
elif item == "*":
c = b * a
elif item == "/":
c = b / a
else:
print("有問題")
return stack.pop()
str = middle2after("1+3*(4+2)/5+(6+7*8-9)")
print(str)
print(cal(str))
學習Python第十二天
if else語句 if 條件為真 執行命令1 else 執行命令2while else 語句 a 0while a 5 print a,是大於5的數 a 1else print a,是小於或等於5的數 10 是大於5的數 9 是大於5的數 8 是大於5的數 7 是大於5的數 6 是大於5的數 5 ...
python爬蟲學習第十二天
今天學習了用beautifulsoup函式來獲取指定的節點,以及用當前結點順藤摸瓜找到其子節點,後代節點,兄弟節點,父節點。練習1 findall 函式抽取只包含在 標籤裡的文字 還順便把class red 標籤裡的內容也提取了 from urllib.request import urlopen ...
第十二天Python學習記錄
1 iphone7 alex rain jack old driver 2 iphone8 alex shanshan jack old boy 34 both list 56 for name in iphone8 7if name in iphone7 89 print both list 資料...