随笔分类 -  数据结构

摘要:#include<stdio.h> #include<math.h> int Bdepth(BiTree b) { //求二叉树的高度 int ldepth,rdepth; if(b==NULL) return 0; ldepth = Bdepth(b->lchild); rdepth = Bdep 阅读全文
posted @ 2019-12-07 23:40 小孢子 阅读(199) 评论(0) 推荐(0)
摘要:2018年 26题 #include <stdio.h> //本题就是找规律,后一个分数的分子是前一个分数的分子分母之和,后一个分数的分母是前一个分数的分子 int main() { float sum=0.0,term=0.0,den=1,n=2,t; int i; for(i=0;i<20;i+ 阅读全文
posted @ 2019-10-29 18:27 小孢子 阅读(509) 评论(0) 推荐(0)
摘要:bool ancestor(Bitree bt,Elemtype x) { if(bt==NULL) //递归出口 return false; else if(bt->lchild!=NULL&&bt->rchild->data==x||bt->rchild->data==x&&bt->lchild 阅读全文
posted @ 2019-10-04 22:59 小孢子 阅读(2474) 评论(0) 推荐(0)
摘要:#include <stdio.h> //删除以x元素为根的所有子树 void Del_x(Bitree bt) //后序遍历删除以bt为根的子树 { if(bt) { Del_x(bt->lchild); Del_x(bt->rchlid); free(bt); } } //在二叉树上查找所有以x 阅读全文
posted @ 2019-10-04 22:46 小孢子 阅读(469) 评论(0) 推荐(0)
摘要:/****************************************************** 快速排序:稳定排序 最好情况:T=O(n*logn)//待排序序列越无序,算法效率越高 最坏情况:T=O(n*n) //待排序列越有序,算法效率越低 ******************* 阅读全文
posted @ 2019-09-19 23:16 小孢子 阅读(160) 评论(0) 推荐(0)
摘要:/******************* 冒泡排序:稳定排序 S=O(1),T=O(n*n) ********************/ #include <stdio.h> #include <stdbool.h> int main() { int a[10],i; printf("请输入10个数 阅读全文
posted @ 2019-09-19 23:15 小孢子 阅读(156) 评论(0) 推荐(0)
摘要:/****************************** 直接插入排序:S=O(1);T=O(n*n); 比较次数取决于待排序的初始状态。 稳定的排序 *******************************/ #include <stdio.h> int main() { int a[ 阅读全文
posted @ 2019-09-19 22:52 小孢子 阅读(110) 评论(0) 推荐(0)
摘要://判定一棵二叉树是否为完全二叉树 bool Is(BiTree b) { InitQueue(Q); BiTree p; if(b==NULL) //空树为满二叉树 return true; EnQueue(Q,b);//将根节点入队 while(!IsEmpty(Q)) //如果队列不为空 { DeQueue(Q... 阅读全文
posted @ 2019-08-13 20:08 小孢子 阅读(526) 评论(0) 推荐(0)
摘要:#include typedef struct BTNode { char data; struct BTNode * lchild; //p是指针L是左,child是孩子 struct BTNode * rchild; }BTNode,*BiTree; struct BTNode * CreateBTree(); void PreTraverseBTree(str... 阅读全文
posted @ 2019-08-09 19:45 小孢子 阅读(3553) 评论(0) 推荐(0)
摘要:#include #include #include #include struct BiTNode { int data; struct TreeNode *lchild,*rchild; }BiTNode, *BiTree; //输出二叉树的所有结点个数 int Put(BiTree b) { if(b==NULL) ... 阅读全文
posted @ 2019-08-09 18:33 小孢子 阅读(1543) 评论(0) 推荐(0)
摘要:算法: 狭义的算法是与数据的存储方式密切相关 广义的算法与数据的存储方式无关 泛型: 利用某种技术达到的效果就是: 不同的存储方式,执行的操作是一样的 数据结构 狭义: 数据结构是专门研究数据存储的问题 数据的存储包含两个方面: 个体的存储 + 个体关系的存储 广义: 数据结构既包含数据的存储也包含 阅读全文
posted @ 2019-06-26 21:56 小孢子 阅读(133) 评论(0) 推荐(0)
摘要:快速排序程序 排序和查找的关系 查找是排序的前提 排序是重点 阅读全文
posted @ 2019-06-26 21:43 小孢子 阅读(252) 评论(0) 推荐(0)
摘要:#include struct BTNode { char data; struct BTNode * pLchild; //p是指针L是左,child是孩子 struct BTNode * pRchild; }; struct BTNode * CreateBTree(); void PreTraverseBTree(struct BTNode *); void ... 阅读全文
posted @ 2019-06-26 20:32 小孢子 阅读(151) 评论(0) 推荐(0)
摘要:非线性结构 树 树定义 专业定义:1. 有且只有一个称为根节点 2. 有若干个互不相交的子树,这些子树本身也是一棵树 通俗的定义:1. 树是由节点和边组成 2. 每个节点只有一个父节点但可以有多个子节点 3. 但有一个节点例外,该节点没有父节点,此节点称为根节点 专业术语: 深度:从根节点到最底层节 阅读全文
posted @ 2019-06-26 18:41 小孢子 阅读(851) 评论(0) 推荐(0)
摘要:函数调用 当在一个函数的运行期间调用另一个函数时,在运行被调用函数之前,系统需要完成三件事: 1. 将所有的实际参数,返回地址等信息传递给被调函数保存 2. 为被调函数的局部变量(也包括形参)分配存储空间 3. 将控制转移到被调函数的入口 从被调函数返回主调函数之前,系统也要完成三件事: 1. 保存 阅读全文
posted @ 2019-06-26 09:58 小孢子 阅读(180) 评论(0) 推荐(0)
摘要:递归 定义:一个函数自己直接或者间接调用自己 递归满足的三个条件: 1. 递归必须有终止条件 2. 该函数所处理的数据规模必须在递减 3. 这个转化必须是可解的 循环和递归 所有的循环都可以转化为递归,递归不一定都可以转化为循环 递归: 易于理解, 速度慢, 存储空间大 循环: 不易理解, 速度快, 阅读全文
posted @ 2019-06-26 09:46 小孢子 阅读(134) 评论(0) 推荐(0)
摘要:#include #include #include #include typedef struct Node { int data; struct Node * next; }NODE, *PNODE; typedef struct stack { PNODE pTop; PNODE pBottom; }STACK, *PSTACK; void i... 阅读全文
posted @ 2019-06-25 16:53 小孢子 阅读(362) 评论(0) 推荐(0)
摘要:看懂程序的方法: 1. 看流程(即步骤) 2. 看功能 3. 试数 4. 敲,试错(如果实在不会看懂程序再敲) 算法: 狭义的算法是与数据的存储方式密切相关 广义的算法与数据的存储方式无关 泛型: 利用某种技术达到的效果就是: 不同的存储方式,执行的操作是一样的 数据结构 狭义: 数据结构是专门研究 阅读全文
posted @ 2019-06-24 22:57 小孢子 阅读(632) 评论(0) 推荐(0)
摘要:对一个链表的操作: 创建一个链表,遍历输出链表的每个元素,对链表的增,删,排序 阅读全文
posted @ 2019-06-24 21:08 小孢子 阅读(285) 评论(0) 推荐(0)
摘要:定义:n个结点离散分配,彼此通过指针相连, 每个结点只有一个前驱节点, 每个结点只有一个后续结点, 首节点没有前驱节点, 尾结点没有后继结点 专业术语: 首节点:第一个有效节点 尾结点:最后一个有效节点 头结点:头结点的数据类型和首节点类型一样 第一个有效节点之前的那个节点 头结点并不存放数据 头结 阅读全文
posted @ 2019-06-23 22:33 小孢子 阅读(168) 评论(0) 推荐(0)