数据结构
常见的数据结构
猿boy
学习ing
展开
-
完全二叉树和二叉树性质
一.完全二叉树 特点: 1.叶子节点只能出现在最下面2层 2.层序遍历时连续的 二. 二叉树性质 第i层,最多有2的(i-1)次方 个节点 深度为k,最多有2的k次方-1个结点 叶子节点为n0,度为2 的结点为n2,则n0 = n2+1 n个节点的完全二叉树,深度为log [(2,n)+1 ] 取下地板 n个节点的完全二叉树,按层序编号,任一结点i a. i=1,则结点为根,若i&...原创 2020-03-24 13:32:38 · 1234 阅读 · 1 评论 -
7.归并排序
一.归并排序 #include <iostream> using namespace std; #define MAX 100 //设置数组大小 #define END 65535 //设置超尾元素 int count; //得到比较的次数 //设置临时数组的空间大小 int L[MAX / 2 + 2], R[MAX / 2 + 2]; //...原创 2020-03-05 15:58:17 · 94 阅读 · 0 评论 -
6.二叉树
一.二叉树遍历 #include<stdio.h> typedef char data_t; typedef struct node { data_t data; struct node* lchild,*rchild; }node_t; //前序遍历 void pre_printf(node_t *root) { if(root == NULL) ...原创 2020-03-04 20:19:27 · 71 阅读 · 0 评论 -
5.快速排序,选择排序,冒泡排序
一.快速排序 步骤: 1. 2. 3. 在这里插入代码片 二.选择排序 步骤: 在这里插入代码片原创 2020-03-04 17:19:15 · 96 阅读 · 0 评论 -
4.查找
一.折半查找 使用:数据有序的情况下 核心:带查找的数据在左边还是右边,中间就证明找到了 #include<stdio.h> int search_value(int *p,int n,int value) { int low = 0,high = n-1,mid; while( high >= low ) { mid = (low + high)/2; if(v...原创 2020-03-03 16:40:36 · 74 阅读 · 0 评论 -
3.约瑟夫问题,栈,队列
一.约瑟夫问题 步骤: 1.初始化基本量以及链表 2.将链表头位置移动到开始位置 3.进入循环,开始游戏 关键:移动到待删位置的前一个位置, #include<stdio.h> #include<stdlib.h> typedef struct node { int data; struct node *next; }node_t; int main() { in...原创 2020-03-02 08:50:21 · 681 阅读 · 0 评论 -
2.单向链表
转载请附上: 1.示例 #include<stdio.h> #include<stdlib.h> typedef int data_t ; typedef struct link { data_t data; struct link* next; }link; //按位置插入 int position_insert(link* l,int pose,data_t d) ...原创 2020-03-01 18:40:44 · 94 阅读 · 0 评论 -
1.顺序表
一.小知识 算法的设计:逻辑结构 算法的实现:存储结构 简单介绍: 二.举例 #include<stdio.h> #include<stdlib.h> #define MAX 100 typedef int data_t; typedef struct { data_t data[MAX]; int last; }seqlist; //创建顺序表 seqlist*...原创 2020-03-01 12:56:21 · 108 阅读 · 1 评论