一、填空
1、完全二叉树:2^(h-1)<=结点数量<= 2^h -1 (h<=(log2^ n+1)) a、二叉树:第i层至多有2^(i-1)个结点;结点数量<= 2^h -1;n0=n2 +1 ; 完全二叉树最下面一层的最左子树开始计算,如果出现偶数个结点则不存在度为1的结点,反之度为1的结点个数一定是1(或总结点数为偶) 2、单链判空:head->next==NULL; 循环单空:head->next==head;循环双:L->next==L或者L->prior==L 3、哈夫曼树没有度为1的节点 二叉树的性质:度为0的结点个数比度为2的多一个 4、数组data[m]作为循环队列SQ的存储空间,队尾指针是rear,队头是front,QueueSize(m)为循环队列的最大长度;队空条件:rear==front ;队满条件:(rear+1) %QueueSIze==front ;计算队列长度:(rear-front+QueueSize)%QueueSize 入队:(rear+1)%QueueSize 出队:(front+1)%QueueSize
模式串 ab a a b c a c next值 0 1 1 2 2 3 1 2同加1,不同即为1 nextval 0 1 0 2 1 3 02同0,不同为next 3、冒泡排序 O(N2) 选择排序 O(N2) 插入排序 O(N2) 希尔排序 O(NlogN) 快速排序 O(NlogN) 归并排序 O(NlogN) 二叉树排序 O(NlogN) 堆排序 O(NlogN) 拓扑排序 O(N+E) Q,H,C,Y,Q,A,M,S, R,D,F,X shell: Q,A,C,S,Q,D,F,X,R,H,M,Y 对吧? 快排:MACD,FHQX,RSQY 排序题:快排:C, pivot = 46 [],79,56,38,40,84;40,79,56,38,[],84 //从后往前扫找到40比46小,交换;40,[],56,38,79,84 //从前往后扫找到79比46大,交换;40,38,56,[],79,84 //从后往前扫找到38比46小,交换 40,38,[],56,79,84 //从前往后扫找到56比46大,40,38,46,56,79,84 //最后插入基准46 希尔:16 25 12 30 47 11 23 36 9 18 31 ( 11 23 12 9 18 16 25 36 30 47 31)(9