![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
CJ_Study_Home
嵌入式软件工程师的路上
展开
-
斐波那契
#include "stdio.h" int Fbi(int i) /* 斐波那契的递归函数 */ { if (i < 2) return i == 0 ? 0 : 1; return Fbi(i - 1) + Fbi(i - 2); /* 这里Fbi就是函数自己,等于在调用自己 */ } int main() { int i; int a[40]; printf("...原创 2018-07-24 19:48:24 · 209 阅读 · 0 评论 -
队列满与空的条件
充分利用队列的存储空间,我们可以把队列想象成一个首尾相接的圆环,即将队列中的第一个元素接在最后一个元素的后面,我们称这样的队列为循环队列; 队满的条件:(rear+1)%MaxSize = front(此时,循环队列中能装入的元素的个数为MaxSize) 队空的条件:rear=front...原创 2018-07-25 21:11:29 · 16085 阅读 · 2 评论 -
队列
简单的写一下队列的操作。 /* (1)清空队列 (2)判断是否为空 (3)元素的个数 (4)入队列 (5)出队列 (6)取对头元素 */ #define MAXSIZE 10 typedef struct { int data[MAXSIZE]; int front; int rear; }Squeue; //1清空队列 bool clearSqueue(Squeue* q...原创 2018-07-30 21:05:01 · 279 阅读 · 0 评论 -
双向链表
双向链表的头插尾插和删除。 关于链表这一块,其实很简单,只要记得操作的时候,先对新的结点操作,再操作前后。 没有编译。可能有问题,仅供参考。 /***************************************************************************** FileName: 双向链表.c Author: xx Version : ...原创 2018-07-30 21:10:27 · 119 阅读 · 0 评论 -
二叉树链表结构实现
拿一段以前老师的代码 二叉树的功能/操作: 1、初始化 2、清空 3、构建二叉树 4、前、中、后序遍历二叉树 5、二叉树的深度 学习二叉树的时候,非常要注意的是,形参是二级指针。 前中后序遍历的递归算法,要好好理解。 老师的这个代码,个人觉得好在求树的深度,这个当初自己没有想到。 #include "string.h" #include "stdio.h" #i...原创 2018-07-30 21:16:27 · 2506 阅读 · 0 评论 -
快速排序---简解
快速排序是真的块。 简单的说一下快排的思想: 第一步,找出一个键值,通常取第一个元素,用temp中间变量暂存,left和right为排序范围的左边界和右边界。 第二步、从右边找出比temp小的放入i下标的位置。i++。 第三步、从i+1的位置往后找到比temp大的值放入j下标处。 第四步、知道i >=j.. 第一次排序做好了,然后重复步骤。。排序left到j - 1,i+1 到r...原创 2018-08-10 20:54:16 · 143 阅读 · 0 评论 -
八大排序算法总结
排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。 常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。 算法一:插入排序 插入排序示意图 插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对...原创 2018-08-13 09:03:50 · 183 阅读 · 0 评论