![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
jing sir' blog
这个作者很懒,什么都没留下…
展开
-
自己实现队列
队列是先进先出,自己使用链表实现一个队列,包括队列初始化、进队、出队、和队列的遍历。记录一下代码实现。下图是队列的初始结构和有数据时候的结构。#include <stdio.h>#include <stdlib.h>typedef struct node{ int data; struct node *next;} NODE,*P_NODE;typedef struct queue{ int queue_size; P_NODE front; P_NOD原创 2021-04-14 15:53:02 · 153 阅读 · 0 评论 -
自己实现双向循环链表
双向链表访问节点的前一个和后一个节点的效率非常高,并且freeRTOS中也是使用的双向循环链表,自己实现一个含有头结点的双向循环链表,链表操作包括初始化和头添加、尾添加 、删除等操作。头节点结构如下:lenght表示list节点个数,刚开始头节点的下一个和前一个节点都是指向自己。有数据的list示意图如下需要注意的是,无论删除还是增加节点,都需要调整4个指针位置,删除的时候需要保存后一个节点。下面是测试#include <stdio.h>#include <st原创 2021-04-13 19:12:36 · 152 阅读 · 0 评论 -
二叉树的三中遍历方式
遍历的主要思想:先把数分为主根,主根的左子树,主根的右子树。左子数看成一个整体,进一步分为主根,左子数和右子数。。。。。。①先序遍历 先序遍历的规则:(1)先访问根节点(2)再先序访问左子数(3)再先序访问右子树A-B-D-C-E-F-G解释:先访问根节点A,然后访问A的左子树(包括BD,把分支BD当成一个整体,在先序访问根节点B,然后访问B的左子数D),最后访问A的右子数(包括CEF...原创 2018-05-30 11:49:32 · 493 阅读 · 0 评论 -
根据两种二叉树遍历方式,求二叉树方法
如何根据已知两种遍历的序列,求原始的二叉树?并不是已知道任意两个序列都可以还原二叉树,只有知道先序中序以及中序和后序两种类型的遍历顺序才能还原二叉树。只知道先序和后序是还原不了原始的二叉树的。(1)已知道先序和中序遍历,还原二叉树。已知道二叉树的先序遍历为ABCDEFGH,中序遍历为BDCEAFHG,求后序遍历。 先序(根,左,右) 中序(左,根,右) ①根据先序遍历可以...原创 2018-05-30 19:56:36 · 4095 阅读 · 2 评论