线性表的定义:(List) typedef int position; typedef struct LNode* PtrToNode;typedef PtrToNode List; struct LNode{//数据从data[0]开始,last记录线性表中最后一个元素在表中的位置,表长为last ...
分类:
其他好文 时间:
2020-03-04 23:11:47
阅读次数:
70
JS中的常用数组方法 concat() 连接两个或更多的数组,并返回结果。 join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。 pop() 删除并返回数组的最后一个元素 push() 向数组的末尾添加一个或更多元素,并返回新的长度。 reverse() 颠倒数组中元素的顺序 ...
分类:
编程语言 时间:
2020-03-03 17:36:58
阅读次数:
64
第二章 查找和排序算法课时1:列表查找1、列表查找的含义:从对象中查找某一个特定的元素2、列表查找的方式包含两种:顺序查找和二分查找3、顺序查找算法:从开始一直搜索到最后一个元素进行查找,for循环,时间复杂度为O(n);4、二分查找针对有效的列表直接进行首尾二分查找,不断使得候选区减半,所以其时间 ...
分类:
编程语言 时间:
2020-02-29 20:17:10
阅读次数:
74
数组分为动态数组和静态数组之分 定义 数组:数组是用来存储相同类型的变量的顺序集合。所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。 静态数组:静态数组是在声明时已经确定子数组大小的数组,即数组元素的个数固定不变; 动态数组:动态数组是指在声明时没有确定数组 ...
分类:
编程语言 时间:
2020-02-28 20:49:57
阅读次数:
51
插入排序工作原理: 1.将一个数组拆分成两个数组,一个取第一个元素认为是有序的;剩余的元素认为是无序的 2.每次从无序数组中取出第一个元素与有序数组最后一个元素进行比较 待插入元素比较大,则放有序数组后面;如果比较小,则与有序数组倒数第二个进行比较,对有序数组从后往前进行扫描,直到遇到比他小的位置, ...
分类:
编程语言 时间:
2020-02-27 19:14:30
阅读次数:
56
题目:有一个数组a[N]顺序存放0~N-1,要求每隔两个数删掉一个数,到末尾时循环至开头继续进行,求最后一个被删掉的数的原始下标位置。以8个数(N=7)为例:{0,1,2,3,4,5,6,7},0->1->2(删除)->3->4->5(删除)->6->7->0(删除),如此循环直到最后一个数被删除。 ...
分类:
其他好文 时间:
2020-02-24 18:44:52
阅读次数:
67
一、技术总结 1. 这是一道考查插入排序和堆排序的问题。 2. 这里开始最主要的问题是,没有理解堆排序。堆排序是通过把数组中第一个元素与最后一个元素交换,然后再对于第一个元素进行向下调整downAdjust函数。 3. 所以这里对于插入排序,只要一直遍历发现第一个元素的比前一个元素小,记录下这时的下 ...
分类:
其他好文 时间:
2020-02-23 22:18:07
阅读次数:
67
题目描述 输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 题解一:递归 后序遍历序列的最后一个元素为二叉树的根节点; 二叉搜索树左子树上所有的结点均小于根结点、右子树所有的结点均大于根 1 public st ...
分类:
其他好文 时间:
2020-02-21 22:21:03
阅读次数:
58
3.堆排序 堆是一种完全二叉树(是除了最后一层,其它每一层都被完全填充,保持所有节点都向左对齐),首先需要知道概念:最大堆问题,最大堆就是根节点比子节点值都大,并且所有根节点都满足,那么称它为最大堆。反之最小堆。 当已有最大堆,如下图,首先将7提出,然后将堆中最后一个元素放到顶点上,此时这个堆不满足 ...
分类:
编程语言 时间:
2020-02-21 13:05:38
阅读次数:
111
一、迭代器 简述:迭代器指的是迭代的工具,迭代指的是一个重复的过程;但是并不是单纯的重复而是基于上一次过程的结果及每一次迭代得到的最终结果都是下一次迭代的初值。 迭代的迭代方式:通过__next__()方法从迭代器对象的第一个元素开始访问一直到最后一个元素访问后迭代结束。 自定义的迭代器: clas ...
分类:
其他好文 时间:
2020-02-20 17:25:08
阅读次数:
69