随笔分类 - 数据结构
摘要:#include<stdio.h> #include<math.h> int Bdepth(BiTree b) { //求二叉树的高度 int ldepth,rdepth; if(b==NULL) return 0; ldepth = Bdepth(b->lchild); rdepth = Bdep
阅读全文
摘要: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+
阅读全文
摘要: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
阅读全文
摘要:#include <stdio.h> //删除以x元素为根的所有子树 void Del_x(Bitree bt) //后序遍历删除以bt为根的子树 { if(bt) { Del_x(bt->lchild); Del_x(bt->rchlid); free(bt); } } //在二叉树上查找所有以x
阅读全文
摘要:/****************************************************** 快速排序:稳定排序 最好情况:T=O(n*logn)//待排序序列越无序,算法效率越高 最坏情况:T=O(n*n) //待排序列越有序,算法效率越低 *******************
阅读全文
摘要:/******************* 冒泡排序:稳定排序 S=O(1),T=O(n*n) ********************/ #include <stdio.h> #include <stdbool.h> int main() { int a[10],i; printf("请输入10个数
阅读全文
摘要:/****************************** 直接插入排序:S=O(1);T=O(n*n); 比较次数取决于待排序的初始状态。 稳定的排序 *******************************/ #include <stdio.h> int main() { int a[
阅读全文
摘要://判定一棵二叉树是否为完全二叉树 bool Is(BiTree b) { InitQueue(Q); BiTree p; if(b==NULL) //空树为满二叉树 return true; EnQueue(Q,b);//将根节点入队 while(!IsEmpty(Q)) //如果队列不为空 { DeQueue(Q...
阅读全文
摘要:#include typedef struct BTNode { char data; struct BTNode * lchild; //p是指针L是左,child是孩子 struct BTNode * rchild; }BTNode,*BiTree; struct BTNode * CreateBTree(); void PreTraverseBTree(str...
阅读全文
摘要:#include #include #include #include struct BiTNode { int data; struct TreeNode *lchild,*rchild; }BiTNode, *BiTree; //输出二叉树的所有结点个数 int Put(BiTree b) { if(b==NULL) ...
阅读全文
摘要:算法: 狭义的算法是与数据的存储方式密切相关 广义的算法与数据的存储方式无关 泛型: 利用某种技术达到的效果就是: 不同的存储方式,执行的操作是一样的 数据结构 狭义: 数据结构是专门研究数据存储的问题 数据的存储包含两个方面: 个体的存储 + 个体关系的存储 广义: 数据结构既包含数据的存储也包含
阅读全文
摘要:#include struct BTNode { char data; struct BTNode * pLchild; //p是指针L是左,child是孩子 struct BTNode * pRchild; }; struct BTNode * CreateBTree(); void PreTraverseBTree(struct BTNode *); void ...
阅读全文
摘要:非线性结构 树 树定义 专业定义:1. 有且只有一个称为根节点 2. 有若干个互不相交的子树,这些子树本身也是一棵树 通俗的定义:1. 树是由节点和边组成 2. 每个节点只有一个父节点但可以有多个子节点 3. 但有一个节点例外,该节点没有父节点,此节点称为根节点 专业术语: 深度:从根节点到最底层节
阅读全文
摘要:函数调用 当在一个函数的运行期间调用另一个函数时,在运行被调用函数之前,系统需要完成三件事: 1. 将所有的实际参数,返回地址等信息传递给被调函数保存 2. 为被调函数的局部变量(也包括形参)分配存储空间 3. 将控制转移到被调函数的入口 从被调函数返回主调函数之前,系统也要完成三件事: 1. 保存
阅读全文
摘要:递归 定义:一个函数自己直接或者间接调用自己 递归满足的三个条件: 1. 递归必须有终止条件 2. 该函数所处理的数据规模必须在递减 3. 这个转化必须是可解的 循环和递归 所有的循环都可以转化为递归,递归不一定都可以转化为循环 递归: 易于理解, 速度慢, 存储空间大 循环: 不易理解, 速度快,
阅读全文
摘要:#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...
阅读全文
摘要:看懂程序的方法: 1. 看流程(即步骤) 2. 看功能 3. 试数 4. 敲,试错(如果实在不会看懂程序再敲) 算法: 狭义的算法是与数据的存储方式密切相关 广义的算法与数据的存储方式无关 泛型: 利用某种技术达到的效果就是: 不同的存储方式,执行的操作是一样的 数据结构 狭义: 数据结构是专门研究
阅读全文
摘要:对一个链表的操作: 创建一个链表,遍历输出链表的每个元素,对链表的增,删,排序
阅读全文
摘要:定义:n个结点离散分配,彼此通过指针相连, 每个结点只有一个前驱节点, 每个结点只有一个后续结点, 首节点没有前驱节点, 尾结点没有后继结点 专业术语: 首节点:第一个有效节点 尾结点:最后一个有效节点 头结点:头结点的数据类型和首节点类型一样 第一个有效节点之前的那个节点 头结点并不存放数据 头结
阅读全文

浙公网安备 33010602011771号