
数据结构
文章平均质量分 56
AvecleSoleil
这个作者很懒,什么都没留下…
展开
-
C++实现单链表的创建
单链表的定义 typedef struct linkList{ int data; struct linkList* next; }LNode; 单链表通常可以分为带头结点和不带头结点的单链表,二者的区别如下图所示 从上图可以直观地看到,带头结点的单链表相较于不带头结点的单链表在空间上会额外浪费一个结点。但是在引入头结点后,可以带来两个优点: ① 在处理第一个位置上的结点时,因为头结点的缘故,其处理方式和其他位置的结点操作一致,不需要进行特殊处理。 ② 无论链表是否为空,其头指针都指原创 2021-06-18 18:56:50 · 3840 阅读 · 0 评论 -
顺序表中元素的移动
已知在一维数组A[m + n]中依次存放两个线性表(a1, a2, a3, … ,am)和 (b1, b2, b3, … ,bn)。试编写一个函数,将数组中两个顺序表的位置互换,即将(b1, b2, b3, … ,bn)放在(a1, a2, a3, … ,am)的前面。 设将n(n>1)个整数存放在一维数组R中。设计一个在时间和空间两方面都尽可能高效的算法。将R中保存的序列循环左移p(0<p<n)个位置,即将R中的数据由(X0, X1, … ,Xn-1)变换为(Xp, Xp+1, .原创 2021-06-16 20:10:23 · 442 阅读 · 0 评论 -
二叉树的前序、中序、后序遍历的递归与非递归实现
二叉树遍历一、前序遍历递归非递归二、中序遍历递归非递归三、后序遍历递归非递归 一、前序遍历 首先我们需要了解什么是二叉树的前序遍历:按照根节点——左子树——右子树的方式遍历二叉树,而在访问左子树或者右子树的时候,我们按照同样的方式进行遍历,直到遍历完整棵树。由上述过程可知,二叉树的遍历过程天然具有递归的性质,所以我们可以通过递归的方式来完成这个过程。 递归 非递归 二、中序遍历 递归 非递归 三、后序遍历 递归 非递归 ...原创 2021-06-10 10:19:53 · 605 阅读 · 0 评论