摘要:
B树(或称B-树)是一种适用于外查找的树,它是一种平衡的多叉树。阶为M的B树具有下列结构特征:1.树的根或者是一片树叶,或者其儿子数在2和M之间。2.除根节点外的所有非树叶节点儿子数在┌M/2┐和 M之间。3.所有的树叶都在相同的高度。4.节点中包括n个关键字,n+1个指针,一般形式为: (n,P0... 阅读全文
摘要:
题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表。要求不能创建任何新的结点,只调整指针的指向。 比如将二元查找树10/ \6 14/ \ / \4 8 12 16转换成双向链表4=6=8=10=12=14=16。一道微软的面试题。二叉查找树的每个节点都有两个指针,双向链表的节点也... 阅读全文
摘要:
Static files管理 static files指一些用到的像css,javascript,images之类的文件。 在开发阶段: 1.在settings设置INSTALLED_APPS中添加'django.contrib.staticfiles'。 2.将STATIC_URL设置为'/sta 阅读全文
摘要:
关联关系字段 (Relationship fields)ForeignKey,ManyToManyField与OneToOneField分别在Model中定义多对一,多对多,一对一关系。例如,一本书由一家出版社出版,一家出版社可以出版很多书。一本书由多个作者合写,一个作者可以写很多书。class A... 阅读全文
摘要:
建立一个简易Modelclass Person(models.Model): GENDER_CHOICES=( (1,'Male'), (2,'Female'), ) name=models.CharField(max_length=30,uni... 阅读全文
摘要:
大部分内容参考自http://wrongwaycn.github.io/django11/topics/db/models/index.html#topics-db-models,内容是django1.0的中文翻译。个人根据django1.5的英文文档做了部分修改和添加。字段类型(Field typ... 阅读全文
摘要:
AVL树是带有平衡条件的二叉查找树,一般要求每个节点的左子树和右子树的高度最多差1(空树的高度定义为-1)。在高度为h的AVL树中,最少的节点数S(h)由S(h)=S(h-1)+S(h-2)+1得出,其中S(0)=1,S(1)=2。如上图,分别为高度为0,1,2,3的AVL树所需要的最少节点数。1.AVL树的实现,遍历与查找操作与二叉查找树相同。class Node(object): def __init__(self,key): self.key=key self.left=None self.right=None self.he... 阅读全文
摘要:
对于二叉查找树的每个节点Node,它的左子树中所有的关键字都小于Node的关键字,而右子树中的所有关键字都大于Node的关键字。二叉查找树的平均深度是O(log N)。1.初始化class BinarySearchTree(object): def __init__(self,key): self.key=key self.left=None self.right=None2.Find def find(self,x): if x==self.key: return self elif xs... 阅读全文
摘要:
1. 二叉树二叉树(binary tree)中的每个节点都不能有多于两个的儿子。1.1 二叉树列表实现如上图的二叉树可用列表表示:tree=['A', #root ['B', #左子树 ['D',[],[]], ['E',[],[]]], ['C', #右子树 ['F',[],[]], []] ]实现:def BinaryTree(item): return [item,[],[]]def insertLeft(tree,item): leftSubtree=tree.pop(1) ... 阅读全文
摘要:
1. 一个列表实现两个栈class Twostacks(object): def __init__(self): self.stack=[] self.a_size=0 self.b_size=0 self.top=0 def a_isEmpty(self): return self.a_size==0 def a_push(self,item): self.stack.insert(self.a_size,item) self.a_size+=1 def ... 阅读全文