-
常见数据结构
摘要:数组 链表 栈 队列 树 堆 散列表 1.数组 数组是可以在内存中连续存储多个单元的结构,在内存中的分配也是连续的,数组中的元素通过下标进行访问,数组下标从零开始。 //定义一个名为arr的数组,给数组的第一个元素赋值为1 int arr = new int[100]; data[0]=1; 优点:
阅读全文
-
八大排序算法
摘要:交换排序 -- 冒泡排序 交换排序 -- 快速排序 选择排序 -- 简单选择排序 选择排序 -- 堆排序 插入排序 -- 简单插入排序 插入排序 -- 希尔排序 归并排序 基数排序 1.冒泡排序 指定一个元素和第二个元素进行比较,将下的放在前面,然后再让第二个和三个进行比较, 将最小的放在前面,每次
阅读全文
-
数据结构--堆
摘要:#include<stdio.h>#include<stdlib.h>#include<string.h>//假设小堆typedef int HDataType; typedef struct heap{ HDataType* _data; int _size; int _capapcity;} h
阅读全文
-
二叉树
摘要:树的概念 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合. 把它叫做树是因为它看起来像一颗倒挂的数,根朝上,叶朝下. 树的特点 1.子树是不相交的; 2.除了根结点外,每个结点有且仅有一个父结点; 3.一颗N个结点的树有N-1条边. 节点的度 : 一个节点含有的子
阅读全文
-
数据结构--队列
摘要:队列的概念 队列 : 只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表, 队列具有 先进先出 原则. 入队列 : 进行插入操作的一端称为队尾. 出队列 : 进行删除操作的一端称为对头. 队列的实现 (常用实现队列 : 含有尾指针的单链表) 顺序表 : 入队列 : push > 从队
阅读全文
-
数据结构--栈
摘要:栈的概念 栈 : 一种特殊的线性表,只允许在固定的一端进行插入和删除元素操作. 进行数据插入和删除操作的一端称为栈顶,另一端称为栈底. 栈中的元素遵守 后进先出 原则. 栈的实现 顺序表 : 压栈 : push > 从栈顶存入元素 表尾 > 栈顶 : 尾插 O(1) (尾插效率比头插高) 出栈 :
阅读全文
-
双向带头循环链表后续
摘要:#include<stdio.h> #include<stdlib.h> #include<string.h> typedef int LDataType; //双向带头循环链表的节点 typedef struct ListNode{ LDataType _data; /*指向下一个节点的起始位置*
阅读全文
-
双向带头循环链表
摘要:#include<stdio.h> #include<stdlib.h> #include<string.h> typedef int LDataType; //双向带头循环链表的节点 typedef struct ListNode{ LDataType _data; /*指向下一个节点的起始位置*
阅读全文
-
链表
摘要:链表:物理存储结构上非连续,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 实际中链表的结构有很多种,有以下情况的组合: 1.单向,双向 2.带头,不带头 3.循环,非循环 我们常见的链表主要是 无头单向非循环链,带头双向循环链表 #include<stdio.h> #include<stdl
阅读全文
-
顺序表
摘要:#include<stdio.h> #include<stdlib.h> #include<cstring> typedef int SLDataType; typedef struct SeqList { SLDataType* _data;/*需要动态开辟的数组*/ size_t _size;/
阅读全文
-
顺序表
摘要:顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构, 一般采用数组存储.分为静态顺序表,动态顺序表 //顺序表的静态存储,空间不可变 #define N 100 typedef int SLDataType;/*数据类型的别名*/ typedef struct SeqList { SLD
阅读全文
|