
数据结构
文章平均质量分 57
Oligay
苏嵌
展开
-
简单的升降排序与冒泡排序
升降排序 #include int main() { int a[5] = {1,78,55,23,8}; int i,j; int temp = 0; // printf("input 5 num\n"); //scanf("%d",&a[i]); for (i = 1; i { for(j = 0;原创 2017-06-30 09:49:15 · 822 阅读 · 0 评论 -
平衡二叉树
平衡二叉树又称AVL树。它或者是颗空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。若将二叉树节点的平衡因子BF定义为该节点的左子树的深度减去它的右子树的深度,则平衡二叉树上所有节点的平衡因子只可能为-1,0,1.只要二叉树上有一个节点的平衡因子的绝对值大于1,那么这颗平衡二叉树就失去了平衡。 假设我们已经有棵平衡二叉树,现在让我转载 2017-08-03 00:19:20 · 210 阅读 · 0 评论 -
带头链表几种操作的思路和代码
1头插: 定义一该个新结点,将数据给这个结点,再将该结点指向首元结点,再将头头指针指向该节点(新结点变成首元结点) int Create_List_Head(PNode h, ElementType data) { if (h == NULL) { return ERROR; } PNode node = (PNode)malloc(sizeof(Node)/sizeof(ch原创 2017-07-26 01:32:24 · 289 阅读 · 0 评论 -
判断二叉树是否平衡
题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。例如下图中的二叉树就是一棵平衡二叉树: 在本系列博客的第27题,我们曾介绍过如何求二叉树的深度。有了求二叉树的深度的经验之后再解决这个问题,我们很容易就能想到一个思路:在遍历树的每个结点的时候,调用函数TreeDepth得到它的左右子树的深度。转载 2017-07-22 23:01:28 · 236 阅读 · 0 评论 -
单链表的头插法与尾插法
首先弄懂头指针与首元结点的概念,头指针指向首元结点,首元结点就是链表第一个有数据的结点; 头插法1: int Create_List_Head(PNode *h, ElementType data) //*h代表首元结点,因为h头指针指向首元结点地址,*h则取地址内容(数据域+指针域)就是首元结点 { // 创建一个新的结点,并分配空间 PNode p = (PNode)malloc原创 2017-07-12 13:47:56 · 427 阅读 · 0 评论