import 'dart:math' show Random;

 List<int> _array;
final _rnd = Random();
final _capacity = 100;
final _max = 100;
var _length = 0; void main() {
_array = List<int>(_capacity);
// _array = List<int>.filled(_capacity, -1); _insert();
_display(); var key = _rnd.nextInt(_max);
print('the find key is: $key');
var pos = _find(key);
if (pos < 0) {
print('can not find the key: $key.\n');
} else {
print('found the key at: $pos.\n');
} var oldValue = _modify(_length ~/ 2, _rnd.nextInt(_max));
if (oldValue != null) {
print('has modified! and oldValue is $oldValue.\n');
}
_display(); _delete(_rnd.nextInt(_max));
_display();
} void _insert() {
for (var i = 0; i < _capacity ~/ 2; i++) {
_array[i] = _rnd.nextInt(_max);
_length++;
}
} void _display() {
var sb = StringBuffer();
for (var i = 0; i < _length; i++) {
sb.write('${_array[i]}, ');
}
var s = sb.isEmpty ? '' : sb.toString().substring(0, sb.length - 2);
print('$s\n');
} int _find(int key) {
var index = -1;
for (var i = 0; i < _length; i++) {
if (_array[i] == key) {
index = i;
break;
}
}
return index;
} int _modify(int pos, int newValue) {
int oldValue;
if (pos > _length - 1) {
print('out of bound!\n');
} else {
print(
'will modify the value(${_array[pos]}) of array[$pos] to new value: $newValue');
oldValue = _array[pos];
_array[pos] = newValue;
}
return oldValue;
} void _delete(int key) {
print('the deleted key is: $key');
var pos = _find(key);
if (pos < 0) {
print('can not find the key: $key!\n');
} else {
print('the index of deleted key is: $pos\n');
for (var i = pos; i < _length - 1; i++) {
_array[i] = _array[i + 1];
}
_length--;
}
}

这是用dart语言实现的数组,因为dart内置List,且面向对象,本代码故意没有使用类和内置的List的部分特性。为了保证运行效果,采用随机数进行增删改查。

数据结构与算法之数组(1)——in dart的更多相关文章

  1. C语言- 基础数据结构和算法 - 动态数组

    听黑马程序员教程<基础数据结构和算法 (C版本)>,照着老师所讲抄的, 视频地址https://www.bilibili.com/video/BV1vE411f7Jh?p=1 喜欢的朋友可 ...

  2. JavaScript 数据结构与算法1(数组与栈)

    学习数据结构的 git 代码地址: https://gitee.com/zhangning187/js-data-structure-study 1.数组 几乎所有的语言都原生支持数组类型,因为数组是 ...

  3. Java数据结构和算法之数组与简单排序

    一.数组于简单排序 数组 数组(array)是相同类型变量的集合,可以使用共同的名字引用它.数组可被定义为任何类型,可以是一维或多维.数组中的一个特别要素是通过下标来访问它.数组提供了一种将有联系的信 ...

  4. Java数据结构和算法总结-数组、二分查找

    前言:在平时开发中数组几乎是最基本也是最常用的数据类型,相比链表.二叉树等又简单很多,所以在学习数据和算法时用数组来作为一个起点再合适不过了.本篇博文的所有代码已上传 github ,对应工程的 ar ...

  5. Java数据结构和算法的数组

    阵列的功能: 1.固定大小 2.相同的数据类型 3. 4.数据项可反复 Java数据类型:基本类型(int和double)和对象类型.在很多编程语言中.数组也是基本类型.但在Java中把它们当作对象来 ...

  6. JavaScript数据结构与算法(五) 数组基础算法

  7. Java成神之路:第二帖---- 数据结构与算法之稀疏数组

    数据结构与算法--稀疏数组 转换方法 记录数组有几行几列,有多少个不同的值 把不同的值的元素的行列,记录在一个小规模的数组中,以此来缩小数组的规模 如图: 二维数组转稀疏数组 对原始的二维数组进行遍历 ...

  8. 翻阅《数据结构与算法javascript描述》--数组篇

    导读: 这篇文章比较长,介绍了数组常见的操作方法以及一些注意事项,最后还有几道经典的练习题(面试题). 数组的定义: JavaScript 中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性 ...

  9. Java数据结构和算法(二)——数组

    上篇博客我们简单介绍了数据结构和算法的概念,对此模糊很正常,后面会慢慢通过具体的实例来介绍.本篇博客我们介绍数据结构的鼻祖——数组,可以说数组几乎能表示一切的数据结构,在每一门编程语言中,数组都是重要 ...

随机推荐

  1. 模拟代理安装---User-Agent Switcher for Chrome安装

    模拟代理安装: 1. 百度User-Agent Switcher for Chrome进行下载 2. 直接安装 1. 进入扩展程序界面 2. 拖动插件进行安装 3.安装成功后会显示一个插件标志,里面可 ...

  2. MP4

  3. php中的mysql_fetch_row,mysql_fetch_array,mysql_fetch_object

    1.mysql_fetch_row mysql_fetch_row,这个函数是从结果集中取一行作为枚举数据,从和指定的结果标识关联的结果集中取得一行数据并作为数组返回.每个结果的列储存在一个数组的单元 ...

  4. [EffectiveC++]item22:Declare data members private

    将成员变量隐藏在函数接口的背后,可以为“所有可能的实现”提供弹性, 假设我们有一个public成员变量,而我们最终取消了它,多少代码可能会被破坏呢?那是一个不可知的大量. protected成员变量就 ...

  5. linux服务器安全配置10大技巧

    1.禁止ping/etc/rc.d/rc.localecho 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all2.对用户和口令文件进行权限控制chmod 6 ...

  6. Apache Jemeter 开发插件

    为什么选择使用JMeter 当被问到这个问题的时候,也许你会在脑海里产生很多的理由,比如: Apache基金会下的开源项目,没有版权问题: 为数不多的还在持续更新的开源性能自动化测试工具: 支持协议丰 ...

  7. [转] Spark-Sql On YARN自动调整Executor数配置

    在所有的NodeManager中,修改yarn-site.xml,为yarn.nodemanager.aux-services添加spark_shuffle值,并设置yarn.nodemanager. ...

  8. Angular2.0知识架构图

    知识架构图:

  9. windows下注册和取消pg服务的命令

    pg_ctl register [-N servicename] [-U username] [-P password] [-D datadir] [-w][-t seconds] [-o optio ...

  10. POJ3690 Constellations

    嘟嘟嘟 哈希 刚开始我一直在想二维哈希,但发现如果还是按行列枚举的话会破坏子矩阵的性质.也就是说,这个哈希只能维护一维的子区间的哈希值. 所以我就开了个二维数组\(has_{i, j}\)表示原矩阵\ ...