![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 59
csdn_wanziooo
这个作者很懒,什么都没留下…
展开
-
跟着左神刷爆算法——链表
哈希表:1)哈希表在使用层面上可以理解为一种集合结构2)如果只有key,没有伴随数据value,可以使用HashSet结构3)如果既有key,又有伴随数据value,可以使用HashMap结构4)有无伴随数据,是HashMap和HashSet唯一的区别,底层的实际结构是一回事5)使用哈希表增(put)、删(remove)、改(put)和查(get)的操作,可以认为时间复杂度为O(1),但常数时间比较大6)放入哈希表的东西,如果是基础类型,内部按值传递,内存占用就是这个东西的大小7原创 2021-11-27 00:07:52 · 425 阅读 · 0 评论 -
跟着左神刷爆算法——简单排序算法
选择排序: public static void selectionSort(int[] arr){ if(arr == null || arr.length < 2){ return; } for(int i = 0; i < arr.length; i++){ int minIndex = i; for(int j = i+1; j < arr.length;原创 2021-11-08 16:58:00 · 258 阅读 · 0 评论 -
数据结构——栈、顺序栈、双栈共享同一栈空间、链式栈
1 //栈,先进后出、后进先出特性 2 3 4 //顺序栈的静态存储结构需要预先定义或申请栈的存储空间,栈空间容量有限,一旦装满不能扩充,元素进栈会发生上溢现象 5 #define maxSize 100 //栈元素数据类型 6 typedef int SElemType; 7 typedef struct 8 { 9 SElemType elem[原创 2017-09-12 20:54:41 · 1585 阅读 · 0 评论 -
一元多项式的加减乘运算
typedef struct PolynNode{ float coef; int expn; struct PolynNode *link;}PolynNode;typedef PolynNode* Polyn;int _Compare(Polyn pa, Polyn pb);void _insert(Polyn &pn, PolynNode *s);void InitPolyn(Polyn &pn);void CreatePolyn(Polyn &pn, int m);vo原创 2017-02-10 14:53:56 · 748 阅读 · 0 评论 -
数据结构——双向链表即双链表
1 //双向链表又称双链表。使用双链表的目的是为了解决在链表中访问直接前趋和直接后继的问题。因为在双链表中每个结点都有两个链指针, 2 //一个指向结点的直接前趋一个指向结点的直接后继,此时不论是向前趋方向查找还是向后继方向查找,其时间复杂度都只有O(l) 3 4 //双向链表带头结点的循环链表方式,头结点由first指示,它的data域或者不放指针,或者放一个特殊要求的指针,它的l原创 2017-09-11 16:45:41 · 891 阅读 · 0 评论 -
数据结构——查找、普通查找、折半查找
1 #define initSize 100 2 typedef int DataType; 3 typedef struct SeqList 4 { 5 DataType *data; 6 int maxSize, n; 7 }; 8 //普通顺序表上的顺序查找算法 9 int SeqSearch(SeqList& L, DataType x)原创 2017-09-18 13:58:53 · 703 阅读 · 0 评论 -
数据结构——循环链表、仅设尾指针的循环链表、约瑟夫环
1 //循环链表,链表的尾结点的link域中不是NULL,而是存放了指针链表开始结点的指针 2 ////设p是在循环链表中逐个结点检测指针,则在判断p是否达到链表的链尾时p->link == first 3 4 5 //循环链表的结构定义 6 typedef int DataType; 7 typedef struct node//循环链表定义 8 { 9原创 2017-09-09 19:21:32 · 3865 阅读 · 0 评论 -
数据结构——顺序(升序)链表(增加,删除,集合的并,交,差)
1 //有序链表(升序)在一个有序链表中寻找一个集合成员(用有序链表表示集合, 2 //集合成员可以无限增加) 3 4 //基于有序链表表示集合的结构定义 5 typedef int DataType;//假定集合元素的数据类型为int型 6 typedef struct node//集合的结点定义 7 { 8 DataType data;//每个成员的数据原创 2017-09-09 16:58:48 · 1612 阅读 · 0 评论 -
数据结构——单链表(带头结点和不带头结点)
1 //单链表:通过各结点的链接指针来表示结点间的逻辑关系,长度可扩充,遍历或查找 2 //只能从指针的指示的首元结点开始,跟随链接指针逐个结点进行访问,进行删除或插 3 //入时,只需修改相关结点的指针域,但链接表比顺序表需要的存储空间多 4 5 6 //单链表的结构定义 7 typedef int DataType; 8 typedef struct node原创 2017-09-09 10:40:01 · 6019 阅读 · 0 评论 -
数据结构——队列、循环队列、链式队列主要操作函数的实现
1 //队列是另一种限定存取位置的线性表。它只允许在表的一端插入,在另一端删除。允许插入的一端叫做队尾,允许删除的一端叫做队头。每次 2 //在队尾加入新元素,最先进入队列的元素最先退出队列。先进先出 3 4 5 //循环队列: 6 7 //循环队列,其首尾相接,当队头指针front和队尾指针rear进到maxSize-1后,再前进一个位置九自动到0,这样可以利用整除原创 2017-09-17 11:40:59 · 923 阅读 · 0 评论 -
数据结构——顺序表
顺序表静态存储数组空间由编译器固定分配,程序执行结后此空间自动释放,可按照数组元素的下标(位置)存取任一元素的值,所化费时间相同。一旦数据空间占满,再加入新的数据就将产生溢出,此时存储空间不能扩充,就会导致程序停止工作1 //顺序表静态存储 2 #define maxSize 100 3 typedef int DataType; 4 typedef struct 5原创 2017-09-08 11:41:05 · 294 阅读 · 0 评论 -
数据结构——二叉树的构建与遍历
二叉树的设计实现与遍历#include 2 using namespace std; 3 4 typedef char DataType;//定义DataType为char类型 5 6 //定义节点结构体 7 typedef struct Node 8 { 9 DataType data; 10 struct Node *leftChi原创 2017-08-11 20:45:09 · 387 阅读 · 1 评论 -
二叉排序树/二叉搜索树
BSTREEBST.h#pragma oncetemplate//友元类声明class BSTree;//友元类声明templateclass BSTNode//自定义的结点类型及特征{ friend class BSTree;//友元public: BSTNode():data(Type()),leftChild(NULL),rightChild(NULL)/原创 2017-07-10 20:40:45 · 199 阅读 · 0 评论