
数据结构与算法
文章平均质量分 88
zqixiao_09
这个作者很懒,什么都没留下…
展开
-
Linux C 算法——排序
排序(Sort)是将无序的记录序列(或称文件)调整成有序的序列。 为了方便讨论,在此首先要对排序下一个确切的定义:假设含有n个记录的序列为 { R1、R2、,。。。Rn }其相应的关键字序列为 {K1、K2,。。。。Kn}需确定1,2,。。。,n的一种排列 p1,p2,。。。pn,使其相应的关键字满足如下的非递减(或非原创 2015-12-30 12:54:05 · 3440 阅读 · 2 评论 -
Linux C 算法——查找
所谓“查找”记为在一个含有众多的数据元素(或记录)的查找表中找出某个“特定的”数据原创 2015-12-29 18:41:12 · 2571 阅读 · 0 评论 -
Linux C 数据结构——二叉树
一、树的概念 树(tree)是n(n>=0)个节点的有限集合T,它满足两个条件:1)有且仅有一个特定的称为根(root)的节点;2)其余的节点可以分为m(m>=0)个互不相交的有限结合T1、T2、...、Tm,其中每一个集合又是一棵树,并成为其根的子数(Subtree)。 树的逻辑结构:树中任何节点都可以有零个或多个直接后继节点(子节点),但至多只有一个直接前原创 2015-12-29 12:57:26 · 4492 阅读 · 0 评论 -
Linux C 数据结构——队列
还是先放这张图,以便对比和理解: 队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为“队尾”,允许进行删除操作的一端称为“队头”。当线性表中没有元素时,称为“空队”。特点:先进先出(FIFO)。原创 2015-12-28 18:07:35 · 11224 阅读 · 0 评论 -
Linux C 数据结构——栈
栈是限制在一段进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,另一固定端称为“栈底”,当栈中没有元素称为“空栈”。特点:先进后出(FILO)。栈顶即top,这里top有两种定义方式:1、满栈(Full Stack),top指向最后一个使用的空间;2、空栈(Empty Stack),top指向下一个可用的空间; 栈也是线性表,所以也分顺序存储和原创 2015-12-28 11:54:15 · 2179 阅读 · 0 评论 -
Linux C 数据结构——链表(循环链表)
前面我们学习了单向链表,现在介绍单向循环链表,单向循环链表是单链表的一种改进,若将单链表的首尾节点相连,便构成单向循环链表结构,如下图: 对于一个循环链表来说,其首节点和末节点被连接在一起。这种方式在单向和双向链表中皆可实现。要转换一个循环链表,可以选择开始于任意一个节点然后沿着列表的任一方向直到返回开始的节点。再来看另一种方法,循环链表可以被视为“无头无尾”。这种列表原创 2015-12-26 19:39:19 · 2486 阅读 · 2 评论 -
Linux C 算法分析初步
提到算法,必须提到数据结构,我们要知道一个著名公式: 数据结构 + 算法 = 程序我们先看看下面这张图: 算法是什么?算法是一个有穷规则(或语句、指令)的有续集和。他确定了解决某一问题的一个运算序列,简单的说,就是解决某一问题的步骤描述。一、算法的特性1)有穷性 ——算法执行的步骤(或规则)是有限的;2)确定性 ——每个计算步骤无二义性;3)可行性——原创 2015-12-25 20:29:27 · 1580 阅读 · 0 评论 -
Linux C 数据结构---链表(单向链表)
上一篇我们讲到了线性表,线性表就是数据元素都一一对应,除只有唯一的前驱,唯一的后继。 线性表存储结构分为顺序存储、链式存储。 顺序存储的优点: 顺序存储的缺点: 链表就是典型的链式存储,将线性表L = (a0,a1,a2,........an-1)中个元素分布在存储器的不同存储块,成为结点(Node),通过地址或指针建立他们之间的练习原创 2015-12-25 12:56:07 · 9469 阅读 · 1 评论 -
Linux C 数据结构---线性表
数据结构指的是数据元素及数据元素之间的相互关系,包含下面三方面的内容:原创 2015-12-24 18:34:26 · 2136 阅读 · 0 评论 -
Linux C 算法与数据结构 --二叉树
头文件BiTree.htypedef int Item;typedef struct node{ struct node * lchild; struct node * rchild; Item data;}BiTNode,*BiTree;/*构造一棵新的二叉树*/BiTree InitBiTree(BiTNode *root);/*生成节点*/BiT原创 2015-12-07 22:40:26 · 1935 阅读 · 0 评论 -
Linux c 算法与数据结构--栈
前段时间写了双向链表,现在写个栈,写之前,先简单介绍链表 队列 栈的区别:链表,队列,堆栈的区别1、栈是个有底的口袋,像袜子。队列是没底的口袋,像通心粉。所以:栈的特点是先进后出,队列的特点是先进先出。2、主要区别是适用的地方不一样, 链表实际上可以认为是一种数据的物理组织形式,是用指针或对象的引用组织起的一种数据的存储方式. 队列和堆栈是一个更高层次原创 2015-12-05 18:03:31 · 1474 阅读 · 0 评论 -
Linux c 算法与数据结构--双向链表
最近一直在巩固C语言基础,写的一些文章主要也是当自己的学习笔记,肯定会出现一些小错误,或者内容比较初级,希望通过自己的努力写出一些高水平的博文!链表是linux c中非常重要的数据结构,双向链表与单向链表的区别,是它每个节点有两个指针域,分别指向该节点的前一个节点与后一个节点;而链表的操作主要是查询、插入、删除、遍历等,下面我写了一个双向链表小demo,主要是进行写小练习,加深印象!代原创 2015-12-02 11:14:27 · 2690 阅读 · 1 评论 -
Linux C 学习 单向链表
最近从Linux C数据结构和算法学起,下面是一个单向链表的写法,代码如下:#include #include int n=0;typedef struct code{ int data; struct code *next;}List;List *creatlink(){ List *head; List *p1; List *原创 2015-11-17 21:01:44 · 2945 阅读 · 0 评论