数据结构
j衣l日
Linux嵌入式软件、Android Camera HAL、图像
展开
-
json_object_object_foreach遍历json的宏定义实现
# define json_object_object_foreach(obj,key,val) \ char *key; struct json_object *val; \ for(struct lh_entry *entry = json_object_get_object(obj)->head; ({ if(entry) { key = (char*)entry->k; v...原创 2018-10-30 09:49:24 · 4479 阅读 · 0 评论 -
二叉树(数据结构)
树(Tree)是n(n >= 0)个结点的有限集合,n = 0 时称为空树。在任意一棵非空树中:(1)有且仅有一个特定的称为根(Root)的结点;(2)当n > 1 时,其余结点可分为m(m > 0)个互不相交的有限集T1,T2,……Tm,其中每个集合本身又是一棵树,并且称为根的子树(SubTree);注意两点:(1) 根节点是唯一的;(2) 子树互不相交。原创 2018-04-27 00:56:11 · 8299 阅读 · 0 评论 -
队列、栈(数据结构)
介绍队列是一种先进先出(First In First Out)的线性表,只允许在线性表的一端进行插入操作,在另一端进行删除操作。允许插入的一端称为队尾,允许删除的一端称为队头。可以将队列想象成一个管道,数据从一边进入,从另一边流出。所以有时候队列也称为管道(pipe)。栈是一种只能后进先出(Last In First Out)的数据结构,表现为只能在线性表的尾部进行插入和删除操作。其中,把...原创 2018-04-27 00:45:37 · 291 阅读 · 0 评论 -
链表(数据结构)- LRC歌词解析播放示例
链表与数组链表和数组一样也是线性表的一种,所谓线性表是指零个或多个数据元素的序列,序列元素之间有明显的前驱后继关系。但链表与数组不一样的是,链表是通过指针域串联起来的,而数组是通过一片连续的存储空间串联起来,数组元素的地址有着明显的线性关系,而链表元素地址之间则没有关系。使用数组需要预先分配一片连续的存储空间,而链表则可以无限制的加入新的结点。本文将介绍通用单向链表、单向循环链表、双向链...原创 2018-04-27 00:04:15 · 899 阅读 · 0 评论 -
xlm解析方法设计
XML简介XML是可扩展标记语言标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。整理一下在校期间做的XML解析方法。代码下载代码下载路径:download.csdn.n...原创 2018-04-24 01:23:58 · 278 阅读 · 0 评论 -
排序、查找(数据结构)
一、排序算法1、冒泡排序思路:按照约定的排序顺序,两两比较相邻的数据,如果反序则交换,直到没有反序的记录为止。算法复杂度:O(n^2)比较次数:(1 + 2 + 3 +…+ n-1) = n * (n – 1) / 2 次/************************************************************************* ...原创 2018-04-19 03:33:14 · 2892 阅读 · 0 评论 -
栈的创建等操作及使用案例(检测括号匹配)
栈的特点很明显,先进后出,使用数组便可实现。 该特点对于编程来说是非常有帮助的,近期遇到的几个题目都有栈的思想。下面是其中一个简单的题目: 检测字符串中的括号“()”是否匹配,不匹配的情况有: 1、左括号“(”和右括号“)”的总个数不相等。 2、先出现右括号”)”。 思路:若检测到左括号,则入栈;检测到右括号则出栈。并时刻检查栈的标记index是否为负,...原创 2016-05-09 19:41:00 · 317 阅读 · 0 评论 -
归并排序(代码)-递归方法
merge函数:将数组从left(起始位置)到right(终点位置)的数据,先折半拆分为两组。分别从两组的起始数据开始进行比较,较小的值被保存,然后标志值增加(指针后移),直到将两组数据全都遍历一遍。将保存的数据依次按顺序覆盖写入数组a,作为输出流输出。 mergesort函数(归并排序):利用递归的方法进行数组的拆分,调用merge函数,实现排序。/* 将数组折半分...原创 2016-04-23 23:38:10 · 502 阅读 · 0 评论