数据结构
文章平均质量分 78
二十行
一个非计算机专业出身的程序员自学之路
展开
-
数据结构与算法分析学习笔记---第一章
选择问题: #include using namespace std; /* 问题描述: 设有一组N个数而要确定其中第k个最大者。我们称为选择问题。 算法思路: 思路1: 将N个数的数组进行排序,然后选择第k个数。排序的方法比如冒泡、快速等。 时间复杂度:根据排序算法确定。如果是冒泡,那就是n^2。 思路2: 从初始数组a[]里面取前k个放入一个新的数组b[],然后对这个数组原创 2014-04-29 19:13:24 · 518 阅读 · 0 评论 -
数据结构与算法分析学习笔记--第五章--排序
本文就将列出希尔排序、插入排序、堆排序、归并排序及快速排序的原创 2014-07-24 18:29:56 · 413 阅读 · 0 评论 -
优先队列(堆序结构)
/* 二叉堆: 结构性质: 是一个被完全填满的二叉树,有可能的例外是在底层,底层上的元素从左侧到右侧填入。 这样的树称为完全二叉树。(copmlete binary tree) 容易证明一颗高为h的完全二叉树有2^h到2^(h+1) - 1个节点。 因为完全二叉树很有规律,所以它可以用一个数组表示,不需要指针。对于数组中任一位置i上的元素, 其左儿子在位置2i上,其右儿子在左儿子后原创 2014-07-21 18:15:52 · 392 阅读 · 0 评论 -
数据结构与算法分析学习笔记--第四章AVL树
#include using namespace std; template class AVL_Node { public: AVL_Node *m_left; AVL_Node *m_right; T m_data; unsigned int m_hight; public: //构造函数 AVL_Node(T data = T(), AVL_Node *left = NULL,原创 2014-06-07 16:40:01 · 474 阅读 · 0 评论 -
heap、stack、全局区(静态区)、文字常量区、程序代码区的差别
栈区(stack):由编译器自动分配和释放,存放函数的参数值、局部变量的值等。其操作方式类似数据原创 2014-04-11 20:08:09 · 670 阅读 · 0 评论 -
数据结构与算法分析学习笔记--第四章(搜索二叉树,递归和非递归实现删除、插入)
基本概念:搜索二叉树,也可称为查找二叉树原创 2014-05-11 13:37:37 · 510 阅读 · 0 评论 -
线性表、栈、队列、单链队列、循环队列 内存分配介绍
线性表:线性表有顺序表示和链式表示两种。 线性表的顺序表示: 因为顺序表是连续的存储地址,所以在初始化顺序线性表的时候就会分配好一个固定值的内存。如果在向线性表插值的过程中出现初始分配内存不足,则调用reallac重新分配内存,顺序表起始地址不变。所以在destroy的时候,只需要将顺序表的起始指针free掉就ok。 #define SQLIST_INIT_SIZE 5 struct SqLi原创 2014-04-03 23:30:05 · 782 阅读 · 0 评论 -
数据结构与算法分析学习笔记--第四章(二叉树:创建、递归遍历、非递归遍历、根据数据删除结点等)
二叉树文件: #include #include #include #define ASSERT assert using namespace std; //********************************************************************** //结点声明 template class CBTNode { public: T m原创 2014-05-03 16:46:14 · 722 阅读 · 0 评论 -
堆栈的区别
非本人作也!因非常经典,所以收归旗下,与众人阅之!原作者不祥! 堆和栈的区别 一、预备知识—程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据转载 2014-04-15 21:05:10 · 377 阅读 · 0 评论 -
数据结构与算法分析学习笔记---第三章(链表)
单链表: /////////////////////////////////////////////////////////////////////////////// // // FileName : slist(单链表).h // Version : 0.10 // Author : Z X // Date : 2014-4-29原创 2014-05-01 18:00:42 · 401 阅读 · 0 评论 -
数据结构与算法分析学习笔记---第二章
#include using namespace std; #define BUFFER_SIZE 100 /************************************************************************/ /* 问题描述: 给定整数A1,A2...AN(可能有负数),求从k = i 到k = j的Ak求和的最大值。 例如:输入 -2,11,原创 2014-04-29 22:32:24 · 666 阅读 · 0 评论 -
数据结构与算法分析学习笔记--第五章--散列---分离链接法
在散列表中,如果当一个元素被插入时,另一个元素已经存在(散列值相同,也就是键相同),那么就会产生原创 2014-06-13 21:56:17 · 435 阅读 · 0 评论