![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
文章平均质量分 96
小米拍客光
喜欢IT,喜欢技术,嗨起来~~~~~~~~~~~~~~
展开
-
Linux C 学习 单向链表
最近从Linux C数据结构和算法学起,下面是一个单向链表的写法,代码如下:[cpp] view plain copy#include #include int n=0; typedef struct code { int data; struct code *next; }L原创 2016-06-18 23:54:39 · 284 阅读 · 0 评论 -
Linux C 算法——查找
所谓“查找”记为在一个含有众多的数据元素(或记录)的查找表中找出某个“特定的”数据,即在给定信息集上寻找特定信息元素的过程。 为了便于讨论,必须给出这个“特定的”词的确切含义。首先,引入一个“关键字”的概念; 关键字(Key) 是数据元素(或记录)中某个数据项的值,用它可以标识(识别)一个数据元素(或记录); 查找(Serching)根据给定的某个值,在原创 2016-06-19 00:08:22 · 313 阅读 · 0 评论 -
Linux C 数据结构——二叉树
先放这张图:可以看出,树是非线性结构;一、树的概念 树(tree)是n(n>=0)个节点的有限集合T,它满足两个条件:1)有且仅有一个特定的称为根(root)的节点;2)其余的节点可以分为m(m>=0)个互不相交的有限结合T1、T2、...、Tm,其中每一个集合又是一棵树,并成为其根的子数(Subtree)。 树的逻原创 2016-06-19 00:07:15 · 339 阅读 · 0 评论 -
Linux C 数据结构——队列
还是先放这张图,以便对比和理解: 队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为“队尾”,允许进行删除操作的一端称为“队头”。当线性表中没有元素时,称为“空队”。特点:先进先出(FIFO)。一、顺序队列 建立顺序队列结构必须为其静态分配或动态申请一片连续的存储空间,并设置两个指针进行管理。一个是队头指针front原创 2016-06-19 00:06:19 · 363 阅读 · 0 评论 -
Linux C 数据结构——栈
还是先把这张图贴出来,以便对比和理解 栈是限制在一段进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,另一固定端称为“栈底”,当栈中没有元素称为“空栈”。特点:先进后出(FILO)。栈顶即top,这里top有两种定义方式:1、满栈(Full Stack),top指向最后一个使用的空间;2、空栈(Empty Stack)原创 2016-06-19 00:05:26 · 243 阅读 · 0 评论 -
Linux C 数据结构—-循环链表
前面我们学习了单向链表,现在介绍单向循环链表,单向循环链表是单链表的一种改进,若将单链表的首尾节点相连,便构成单向循环链表结构,如下图: 对于一个循环链表来说,其首节点和末节点被连接在一起。这种方式在单向和双向链表中皆可实现。要转换一个循环链表,可以选择开始于任意一个节点然后沿着列表的任一方向直到返回开始的节点。再来看另一种方法,循环链表可以被视为“无头无尾”。原创 2016-06-19 00:03:37 · 294 阅读 · 0 评论 -
Linux C 算法分析初步
提到算法,必须提到数据结构,我们要知道一个著名公式: 数据结构 + 算法 = 程序我们先看看下面这张图: 算法是什么?算法是一个有穷规则(或语句、指令)的有续集和。他确定了解决某一问题的一个运算序列,简单的说,就是解决某一问题的步骤描述。一、算法的特性1)有穷性 ——算法执行的步骤(或规则)是有限的;2)确定性 ——每个计原创 2016-06-19 00:02:29 · 219 阅读 · 0 评论 -
Linux C 数据结构---单向链表
线性表存储结构分为顺序存储、链式存储。 顺序存储的优点: 顺序存储的缺点: 链表就是典型的链式存储,将线性表L = (a0,a1,a2,........an-1)中个元素分布在存储器的不同存储块,成为结点(Node),通过地址或指针建立他们之间的练习,所得到的存储结构为链表结构。表中元素ai的结点形式如下:其中,结点的da原创 2016-06-19 00:01:30 · 238 阅读 · 0 评论 -
Linux C 数据结构---线性表
数据结构指的是数据元素及数据元素之间的相互关系,包含下面三方面的内容: 其中,线性表是最基本、最简单、也是最常用的一种数据结构。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表的逻辑结构简单,便于实现和操作。因此,线性表这种数据结构在实际应用中是广泛采用的一种数据结构。 线性表是一个线性原创 2016-06-19 00:00:25 · 224 阅读 · 0 评论 -
Linux C 算法与数据结构 --二叉树
头文件BiTree.h[cpp] view plain copytypedef int Item; typedef struct node { struct node * lchild; struct node * rchild; Item data; }BiTNode,*BiTre原创 2016-06-18 23:59:20 · 455 阅读 · 0 评论 -
Linux c 算法与数据结构--栈
前段时间写了双向链表,现在写个栈,写之前,先简单介绍链表 队列 栈的区别:链表,队列,堆栈的区别1、栈是个有底的口袋,像袜子。队列是没底的口袋,像通心粉。所以:栈的特点是先进后出,队列的特点是先进先出。2、主要区别是适用的地方不一样, 链表实际上可以认为是一种数据的物理组织形式,是用指针或对象的引用组织起的一种数据的存储方式. 队列和堆栈是一个更高原创 2016-06-18 23:57:40 · 218 阅读 · 0 评论 -
Linux c 算法与数据结构--双向链表
链表是linux c中非常重要的数据结构,双向链表与单向链表的区别,是它每个节点有两个指针域,分别指向该节点的前一个节点与后一个节点;而链表的操作主要是查询、插入、删除、遍历等,下面来看一个双向链表,主要是进行写小练习,加深印象!代码如下:Dlist.h[cpp] view plain copy#ifndef DLis原创 2016-06-18 23:56:34 · 641 阅读 · 0 评论 -
Linux C 算法——排序
排序(Sort)是将无序的记录序列(或称文件)调整成有序的序列。 为了方便讨论,在此首先要对排序下一个确切的定义:假设含有n个记录的序列为 { R1、R2、,。。。Rn }其相应的关键字序列为 {K1、K2,。。。。Kn}需确定1,2,。。。,n的一种排列 p1,p2,。。。pn,使其相应的关键原创 2016-06-19 00:09:11 · 246 阅读 · 0 评论