37,719
社区成员
发帖
与我相关
我的任务
分享
# -*- coding:utf-8 -*-
class BTree(object):
def __init__(self, value):
self.left = None
self.data = value
self.right = None
def insertLeft(self, value):
self.left = BTree(value)
return self.left
def insertRight(self, value):
self.right = BTree(value)
return self.right
def show(self):
print self.data
# 先序遍历
def preorder(node):
if node.data:
node.show()
if node.left:
preorder(node.left)
if node.right:
preorder(node.right)
# 中序遍历
def inorder(node):
if node.data:
if node.left:
inorder(node.left)
node.show()
if node.right:
inorder(node.right)
# 后序遍历
def postorder(node):
if node.data:
if node.left:
postorder(node.left)
if node.right:
postorder(node.right)
node.show()
if __name__ == '__main__':
Root = BTree('Root')
A = Root.insertLeft('A')
C = A.insertLeft('C')
D = A.insertRight('D')
F = D.insertLeft('F')
G = D.insertRight('G')
B = Root.insertRight('B')
E = B.insertRight('E')
# -*-coding: utf-8 -*-
def A(graph, start, end):
result = []
B(graph, [start], end, result)
result.sort(lambda x, y: cmp(len(x), len(y)))
return result
def B(graph, start, end, result):
data = start[-1]
if data == end:
result.append(start)
else:
for rt in graph[data]:
if rt not in start:
B(graph, start+[rt], end, result)
if __name__ == '__main__':
Graph = {'A': ['B', 'C', 'D'],
'B': ['E'],
'C': ['D', 'F'],
'D': ['B', 'E', 'G'],
'E': [],
'F': ['D', 'G'],
'G': ['E']}
r1 = A(Graph, 'A', 'D')
r2 = A(Graph, 'A', 'E')
r3 = A(Graph, 'C', 'E')
# -*- coding:utf-8 -*-
import images
def BinarySearch(l, key):
low = 0
high = len(l) -1
i = 0
while (low <= high):
i += 1
mid = (high + low) / 2
if (l[mid] < key):
low = mid + 1
print 'Here is %d,mid is %d, high is %d, low is %d'% (l[mid], mid, high, low)
elif (l[mid] > key):
high = mid - 1
print 'Here is %d,mid is %d, high is %d, low is %d'% (l[mid], mid, high, low)
else:
print 'Here is %d,mid is %d, high is %d, low is %d'% (l[mid], mid, high, low)
print 'Here is %d'% l[mid]
print 'usr %d time(s)'% i
return mid
return -1
if __name__ == '__main__':
l = [1, 5, 6, 9, 10, 51, 62, 65, 70]
#程序中间的 print 各参数是我后加的,方便看运行情况