数据结构&&算法
文章平均质量分 75
恶变133
思路要清晰
展开
-
郝斌老师数据结构笔记
数据结构概述 定义 我们如何把现实中大量而复杂的问题以特定的数据类型(单 个数据怎样存储?)和特定的存储结构(个体的关系) 保存到主存储器(内存)中,以及在此基础上为实现某个功能 (比如查找某个元素,删除某个元素,对所有元素进行排序) 而执行的相应操作,这个相应的操作也叫算法。(比如班里有 1转载 2015-05-28 17:10:35 · 770 阅读 · 0 评论 -
排序(快排,冒泡,堆排序,插入排序,归并排序,选择排序)算法Java实现
package sample;public class Sort { /** * 插入排序:把array[j]插入到0~j-1的有序序列上,j从第二个元素开始,把第一个元素看成有序序列 * @param array */ public static void insertSort(int[] array) {原创 2016-04-01 15:11:20 · 378 阅读 · 0 评论 -
数据结构之递归小练习(定义,阶乘,求和,汉诺塔)
递归定义;程序直接或间接调用自己,叫做递归。成为递归的条件:1.要操作的数据规模一直减小,一般而言就是解决n问题必须解决n-1的问题2.必须有一个明确的终止条件。3.每一次的操作都相同,当前的数据和n-1个数据的关系都相同。小例子:1.用递归的思想求阶乘:#includelong fn(int n); int main(){ int r; i原创 2015-06-13 23:27:45 · 712 阅读 · 0 评论 -
非线性结构之二叉树
二叉树的建立和遍历原创 2015-07-07 21:57:24 · 499 阅读 · 0 评论 -
数据结构之静态循环队列(所有操作)
#include#includetypedef struct queue{ int * base; int front; int rear;}Queue,*PQueue;PQueue init_Queue(PQueue queue);void in_Queue(PQueue queue,int val);void out_Que原创 2015-06-05 10:39:49 · 335 阅读 · 0 评论 -
数据结构之排序(冒泡,选择,插入,快排)
冒泡排序:#include #define SIZE 8 void bubble_sort(int a[], int n); void bubble_sort(int a[], int n){ int i, j, temp; for (j = 0; j for (i = 0; i {原创 2015-06-19 17:21:54 · 364 阅读 · 0 评论 -
数据结构之链式队列的所有操作
#include#includetypedef struct node{ int data; struct node *next; }Node,*PNode;//定义节点typedef struct queue{ PNode front; PNode rear;}Queue,*PQueue;//定义队列原创 2015-06-04 00:13:40 · 373 阅读 · 0 评论 -
数据结构之链栈的所有操作
#include#include#includetypedef struct node{ struct node * next; int data;}Node,*PNode;//定义节点类型typedef struct stack{ PNode top; PNode bottom;}Stack,*PStack;//定义栈类型。void i原创 2015-06-01 22:35:07 · 425 阅读 · 0 评论 -
指针与地址
指针就是地址,地址就是指针;指针变量就是存放内存单元地址的变量。int * p;int * 表示该p变量只能存储int 类型变量的地址。转载 2015-05-18 18:45:38 · 454 阅读 · 0 评论 -
数据结构之数组(对数组的所有操作!)
#include#define MAXSIZE 999void init_array(int *array,int *cnt);void append(int *array,int *cnt);void rem(int *array,int *cnt,int pos);void sort(int *array,int *cnt);void traversal(int原创 2015-05-28 17:18:13 · 574 阅读 · 0 评论 -
堆内存和栈内存
我们经常说数据存在堆内存和栈内存,其实这种说法是错误的。堆和栈只是两种不同的数据存储方式。一般而言,自动分配内存的变量是以栈的存储方式存储的;而手动分配内存的变量则是以堆存储方式存储。类如java 中的 引用变量和new关键字所创建的变量。引用变量在栈内存中,而new关键词创建的变量是在堆内存中。原创 2015-06-01 10:42:19 · 295 阅读 · 0 评论 -
指针注意事项
(1).指针也是变量,只不过他存的不是内存单元里的内容,只能存放内存单元的编号。(内存单元一般有值,是前一个程序执行时所存储的值,若程序执行,需要对定义的变量做初始化工作,否则会读取存储单元的垃圾数据)。(2).普通变量前不能加*(3)常量和表达式前不能加取址符。转载 2015-05-18 21:58:44 · 327 阅读 · 0 评论 -
数据结构之单链表(对单链表的所有操作)
#include#includetypedef struct node{ struct node *next; int num;}Node,*PNode;PNode init_linkList();PNode create_linkList(PNode head);void traversal_linkList(PNode head);int getSize原创 2015-05-28 23:51:19 · 344 阅读 · 0 评论