码迷,mamicode.com
首页 >  
搜索关键字:数据结构    ( 30813个结果
常用排序算法之--快速排序
个人认为,数据结构与算法是部分程序员的软肋,而对于非科班出身的程序员来说,更是软肋中的软肋。纠其原因,大部分是因为作为应用层面的程序开发,算法(尤其是查找算法)并不是影响程序性能的最关键的因素。同时作为一个完整的系统,从数据存储到获取都提供了相应的调用接口,如果要获取数据,我们只需要调用外部接口就可...
分类:编程语言   时间:2015-04-12 19:15:42    阅读次数:223
我的第一个编译器之符号表
符号表 符号表是一种供编译器用于保存有关源程序构造的各种信息的数据结构,这些信息在编译器的分析阶段被逐步收集并放入符号表。 如我们输入 {int x;char y;{bool y; x; y; }x; y;} 期望生成: {{x:int; y:bool;} x:int; y:char;} 内层块的x来源于外部。 为每个作用域设置一个符号表 package com.bigb...
分类:其他好文   时间:2015-04-12 17:50:22    阅读次数:132
Insert Sort Singly List
对单链表插入排序,给出个单链表的head节点;返回排完序的head节点;首先数据结构中习惯了以数组为参数排序,瞬间想到是遍历单链表存入arraylist中,再进行insert sort,(O(n**2)),space(O(n)),leetcode过不去;链表插入排序注意事项: 1:依次调用hea.....
分类:其他好文   时间:2015-04-12 17:30:43    阅读次数:125
第六周 linux内核进程的创建
1.task_struct数据结构分析 对于linux而言,每个进程都有一个进程控制PCB(process control block)来保存每个进程的相关信息。其中task_struct则是PCB的具体的数据结构通过内核代码可以发现,内核当中定义一个task_struct的结构体用来保存进程的相....
分类:系统相关   时间:2015-04-12 17:26:39    阅读次数:197
单链表(不带头结点)
#include #include typedef int ElemType; typedef struct Node { ElemType data; struct Node *next; }LNode,*LinkList; void InitList(LinkList &l); void Create_head(LinkList &l); void Create_rear(Lin...
分类:其他好文   时间:2015-04-12 14:48:41    阅读次数:168
数据结构学习——散列表ADT(程序化)
不知道大家在刚开始看《数据结构与算法分析——C语言描述》散列一章的时候,能不能理解书上的内容,小ZZ看的时候就没怎么看明白。于是就去问度娘,度娘给了我这样一篇文章。里面介绍了散列的基本定义以及常用的实现方法,比较通俗易懂(可能是智商有点拙计)。 http://blog.csdn.net/u010275850/article/details/44963701 先看完了这篇博文,然后再看书上的...
分类:其他好文   时间:2015-04-12 13:28:33    阅读次数:172
看数据结构写代码(41) 强连通分量
首先介绍概念问题,在有向图中,若 顶点v1 到 v2 存成路径,并且 v2 到 v1 存成 路径,则称 顶点 v1 和 v2 是强连通的。若 有向图 任意两个节点 都是 强连通的,则 称为强连通图。非强连通图的 极大强连通子图,为 强连通分量。 特别说明,连通的概念 属于 无向图,强连通 属于 有向图。例如:无向图:连通图,连通分量,生成树; 有向图:强连通图,强连通分量。 数据结构书上 简单...
分类:其他好文   时间:2015-04-12 13:28:08    阅读次数:227
彻头彻尾的理解回溯算法
定义 在程序设计中,有相当一类求一组解,或求全部解或求最优解的问题,例如读者熟悉的八皇后问题,不是根据某种特定的计算法则,而是利用试探和回溯的搜索技术求解。回溯法也是设计递归过程的一种重要方法,它的求解过程实质上是一个先序遍历一棵"状态树"的过程,只是这棵树不是遍历前预先建立的,而是隐含在遍历过程中。 ---《数据结构》(严蔚敏) 怎么理解这段话呢? 首先,某种问题的解我们很难去找规律计算...
分类:编程语言   时间:2015-04-12 10:46:33    阅读次数:185
程序员修炼之路-(4)搜索(中):二叉查找树
2 查找:鱼与熊掌前面已经介绍了线程查找和二分查找的符号表(symbol table)实现,但现代应用的特点是查找与插入或删除操作交叉在一起,无法预测,并且表非常巨大。因此问题的关键就是我们能否设计出具有对数性能的search和insert/delete操作的数据结构和算法?为了实现高效的插入,我们需要链表结构。但是单链表却又阻止了二分查找的使用,因为二分查找依赖数组的快速访问才能快速定位到每次迭...
分类:其他好文   时间:2015-04-12 10:41:03    阅读次数:217
看数据结构写代码(40) 无向图的深度优先生成树与广度优先生成树
图的深度优先遍历 和 广度 优先 遍历 算法中的 每一次 最外层 循环 都 产生 一个 无向图 的 连通分量,每一个连通分量,都可以产生一个生成树,将这些生成树合在 一起 就是 一个 森林。 用 树的 孩子 兄弟 链表 表示法 来 表示 这个 森林, 就是 这一节 算法的  内容。 深度优先森林 代码 : //深度优先生成森林 void dfsTree(AMLGraph g,int i,Tre...
分类:其他好文   时间:2015-04-12 09:13:11    阅读次数:124
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!