数据结构与算法
常用数据结构与算法题
lym-ucas
这个作者很懒,什么都没留下…
展开
-
洛谷训练场 P1047 校门外的树(Java)
题目描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是11米。我们可以把马路看成一个数轴,马路的一端在数轴00的位置,另一端在LL的位置;数轴上的每个整数点,即0,1,2,…,L0,1,2,…,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中...原创 2019-12-15 10:22:25 · 397 阅读 · 0 评论 -
二叉树非递归前中后序遍历万能模板
对于非递归遍历二叉树,主要是用栈这个数据结构来模拟递归,此算法使用了command结构体标记每个节点控制是否打印,这样的好处是代码适用前中后序三种遍历方式,当标记的字符串是go时,即访问其孩子节点,若为print时打印当前结点的值,入栈顺序按前中后序不同 前序遍历 #include<string> #include<iostream> #include<stack> using namespace std; //二叉树结点结构体 struct TreeNode {原创 2020-06-23 12:05:40 · 335 阅读 · 0 评论 -
算法4(数据结构)学习—初级排序算法原理及代码(选择排序、插入排序、希尔排序)
1、选择排序 简单描述下就是:首先找到数组中最小的那个元素,将它和数组第一个元素交换位置;然后在剩下的元素中找到最小的元素与数组第二个元素交换位置;如此往复,直到将整个数组排序。 长度为 N 的数组,选择排序需要大约(N^2)/2次比较和N次交换 2、插入排序 插入排序,将每一个元素插入到其他已经有序的局部数组中的适当位置,为了给插入的元素腾出空间,我们需要将其余适当位置后的元素右移一位; 简单来...原创 2020-03-21 15:56:52 · 180 阅读 · 0 评论 -
顺序表元素的查找、插入与删除
顺序表元素的查找 在顺序表中查找元素值为e的元素,并返回其下标 int findElem(List *l,int e) { int i; for(i=0;i<l->length;++i) { if(l->data[i]==e) return i+1; //返回e的位置 } return 0; //没找到返回0...原创 2019-07-12 17:30:40 · 2966 阅读 · 1 评论