数据结构
文章平均质量分 85
数据结构
仍有未知等待探索
追寻答案
展开
-
C/C++ 交换排序
冒泡排序,快排模板原创 2024-02-20 11:54:31 · 295 阅读 · 1 评论 -
C/C++【数据结构】一文秒懂二叉树
树形结构是一类非常重要的非线性结构。树形结构是节点之间有分支,并且具有层次关系的结构,它类似于自然界中的树。就比如说:电脑中磁盘中的文件储存方式就类似于一颗树。在讲二叉树之前,我们要先讲树的定义和树的一些术语。树是n(n>=0)个结点的有限集,T为空时称为空树。非空树的特点:T中有且仅有一个结点K,没有前驱,称K为树的根结点。除了根结点以外,其余节点有且仅有一个直接前驱。T中各结点可以有0个或者多个后继。除了根节点以外,其余结点可以分为m个互不相干的有限集合。原创 2023-11-11 16:27:19 · 660 阅读 · 67 评论 -
C/C++【数据结构】一文秒懂时间复杂度和空间复杂度!
数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。算法(Algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出。简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果。在计算机科学中,算法的时间复杂度是一个函数,它定量描述了该算法的运行时间。一个算法执行所耗费的时间,但是这个是不可以计算出来的,只有在机器上跑出来才知道。每个机器可能因为CPU等硬件的不同,跑出来的时间也不一定相同。原创 2023-11-07 12:30:47 · 833 阅读 · 52 评论 -
C/C++数据结构——队列
在前面学习了栈的基本知识,知道栈是一种特殊的线性表,其特点是先进后出。而接下来要学的队列也是一种操作受限的线性表,其特点是先进先出。从队头出队,从队尾入队。原创 2023-10-24 12:20:45 · 1153 阅读 · 60 评论 -
C/C++数据结构---栈
栈是一种特殊的线性表,栈的基本操作只有入栈和出栈,按照后进先出的原则。栈只能在一端进行插入和删除,该操作端称为栈顶元素,栈的另一端称为栈底元素,并且用一个栈顶指针来进行存储栈顶元素的下标。当栈中没有元素的时候称为空栈。原创 2023-09-28 23:00:11 · 514 阅读 · 10 评论 -
C/C++数据结构---顺序表---链式存储结构2(不带头节点)
根据上一篇的讲解,想必大家已经能够自己创建和初始化链表了。但是对于链表来说,这些操作还不能够完成一些功能,不足以把它应用到一些场景中。接下来还需要实现对链表的增、删、改、查等操作,来让链表能够更方便我们使用。这两次讲的链表才是最基础的单链表,接下来还有双向链表,循环链表等,再学这些之前要打牢基础。解释一个操作,问:为什么要给节点开辟空间以及什么时候应该开辟空间?(这也是我最近刚弄明白的,如果理解有误,请指出来,共同进步。原创 2023-09-17 17:01:39 · 639 阅读 · 39 评论 -
C/C++数据结构---顺序表---链式存储结构1(不带头节点)
/创建一个节点类型,typedef用来将这个节点类型struct Node重命名为Nodeint data;}Node;int data;//data为0结束head = p;int data;//data输入0的时候结束head = p;elseq = p;原创 2023-09-13 23:04:19 · 835 阅读 · 35 评论 -
C/C++数据结构---顺序表---线性存储结构
List* L;return L;把L->last赋值为-1,当输入数据的时候再让L->last++,这个L->last其实存的是数组中最后一个元素的下标。表长为0 的时候,其值为-1。原创 2023-09-10 19:20:19 · 729 阅读 · 38 评论 -
C/C++十大排序之一———归并排序(递归写法)(C/C++)
归并排序和这个引例的方法很相似,给你一个无序的数组,让你排序的话,你可以先把他进行几次分割,变成几个有序的数组然后在进行合并,那这样的话,进行几次分割能把无序的数组变成几个有序的数组呢?(只不过这个数组里就存了一个数而已)那就好办多了,把他们拆成一个一个的数然后进行比较。首先要拿出数组a中的第一个元素和数组b中的第一个元素进行比大小,把小的元素放在一个接收合完并的新数组里面。例如:12),故将2放在1的后面,如此进行下去。归并排序讲究的是分而治之的思想。原创 2023-07-22 17:25:54 · 267 阅读 · 4 评论