#include <iostream> using namespace std; template<typename Object> class Vector { private: int theSize; //实际数据大小 int theCapacity; //实际容器容量大小 Object *objects; //基本数组 public: }; //默认容量大小 ) //单参数构造函数要用explicit()避免类型在后台转换 : theSize(initSize), theC…
[数据结构] Queue 的简单实现 public class XQueue<T> { /// <summary> /// 第一个元素 /// </summary> private static XQueueItem<T> _top; /// <summary> /// 最后一个元素 /// </summary> private static XQueueItem<T> _last; /// <summary>…
线性表(linear list)是最常用且最简单的一种数据结构.一个线性表是n个数据元素的有限序列.在稍复杂的线性表中,一个数据元素可以由若干个数据项(item)组成. 其中: 数据元素的个数n定义为表的长度 = "list".length() ("list".length() = 0(表里没有一个元素)时称为空表) 将非空的线性表(n>=0)记作:(a[0],a[1],a[2],…,a[n-1]) 数据元素a[i](0≤i≤n-1)只是个抽象符号,其具体含义…
1.前言: 我们提到程序中的集合的时候,往往脑海中会浮现出, 如ArrayList和LinkedList以及和HashMap.当然在提到ArrayList和LinkedList的时候,我们大多数的人都知道一点:ArrayList查询速度快,操作速度慢.LinkedList查询速度慢,但是操作速度快.但是why ? 为什么会是这样的现象? 那么接下我从数据结构角度带大家一起去认识下这个问题. 2.数据结构 --- 线性表 数据结构是计算机存储.组织数据的方式. 数据结构是指相互之间存在一种或多种特…
本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/59688569 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/12537014.html 因为本学期选修了几门与统计有关的课,开始学习统计学中普遍使用的R语言.虽然之前学习过Pascal.C.Python等语言,但是初次接触R语言还是感觉跟其他的编程语言有本质的不同.R语言是数学家设计的编程语言,对于一些常见的数学操作和计算要比其他语言简单得多,因此也更适合用在高效的统计…
基数排序(radix sort)又称“桶子法”,在对多个正整数进行排序时可以使用.它的灵感来自于队列(Queue),它最独特的地方在于利用了数字的有穷性(阿拉伯数字只有0到9的10个). 基数排序使用11个动态数组实现排序算法,一个主队列(下文都将使用的动态数组称为队列)存储未排序的数据(最后排序完成也仍然可以用它存储,或者如果希望保存原来的数据位置则可能需要增加一个队列):10个子队列用于排序过程中动态存放数值,在排序开始前和结束后可以清空. 我们使用LinkedList类来实现基数排序,其实…
简单排序 选择排序 概念 首先,找到数组中最小的那个元素,其次,把它和数组的第一个元素交换位置(如果第一个元素就是最小的元素那么它就和自己交换).再次,在剩下的元素中找到最小的元素,将它与数组的第二个元素交换位置.如此往复,直到将整个数组排序.这种方法叫做选择排序,因为它在不断地选择剩余元素中地最小者. 代码实现 public static void SelectionSort(int[] arr){ if(arr==null||arr.length<2) return; //去除多余情况 in…
习题2.1 简单计算器 (20分) 模拟简单运算器的工作.假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算. 输入格式: 输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数.遇等号"="说明输入结束. 输出格式: 在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息"ERROR". 输入样例: 1+2*10-10/2= 输出样例: 10 这道题不要求判断运算符的优先级,不用栈就可…
向量:用于存储数值型.字符型或逻辑型数据的一维数组,只可以包含一种数据 向量的创建与运算 创建向量 # 创建简单向量 l <- c(2, 2, 1, 3, 8) # [1] 2 2 1 3 8 # 创建一个1至5的向量 # : --> 至 # 1:5 --> 从1到5的5个整数 n <- 1:5 # [1] 1 2 3 4 5 # 创建向量,初始默认为逻辑值FALSE v <- vector(length = 4) # [1] FALSE FALSE FALSE FALSE…
1.链表介绍 前面我们已经介绍了向量,向量是基于数组进行数据存储的线性表.今天,要介绍的是线性表的另一种实现方式---链表. 链表和向量都是线性表,从使用者的角度上依然被视为一个线性的列表结构.但是,链表内部存储数据的方式却和向量大不相同:链表的核心是节点.节点存储"数据"的同时还维护着"关联节点的引用".要理解链表,首先必须理解链表的内部节点结构. 最简单的链表结构是单向链表,单向链表中的内部节点存储着数据(data)和其关联的下一个节点的引用(next). da…