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. 计算机支持的最大内存与CPU之间的关系

    在使用计算机时,其最大支持的内存是由  操作系统 和 硬件 两方面决定的. 先说一下硬件方面的因素,在计算机中 CPU的地址总线数目 决定了CPU 的 寻址 范围,这种由地址总线对应的地址称作为物理地 ...

  2. C#网络编程(二)应用篇

    (一)TcpListen类.TcpClient类 TcpListener类和TcpClient类都是System.Net.Sockets命名空间下的类,利用TcpListener和TcpClient可 ...

  3. 最近编译tolua_runtime安卓编译错误

    编译时出现以下错误In file included from lj_ffrecord.c:859:0: lj_recdef.h:224:1: error: ‘recff_rawlen’ undecla ...

  4. ZT 获得/修改共享互斥量属性:pthread_mutexattr_t

    bbs.chinaunix.net/thread-965755-1-1.html 5.   获得/修改共享互斥量属性:    #include<pthread.h>    intpthre ...

  5. [BZOJ 2510]弱题

    2510: 弱题 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 419  Solved: 226[Submit][Status][Discuss] D ...

  6. 阿里八八——预则立&&他山之石

    团队计划--α版本Issues 概况 采访团队:"一起买"开发团队 采访形式:团队--团队 团队采访 内容提炼 项目选题 团队选题本身并没有大的亮点,但是可以从功能下手,多想想项目 ...

  7. C++派生类成员访问作用域,同名重载

    #include <iostream> using namespace std; class CFatherSum //父类Sum { public: int m_iVar; //公用数据 ...

  8. gluoncv 导入方式

    了解了sys.path和python 的import 的话,之前修改gluoncv 的方式就可以有了新的简单的方法: 如果你pip install gluoncv的,然后脚本又git clone了,发 ...

  9. gluoncv 下载预训练模型速度太慢

    export MXNET_GLUON_REPO=https://apache-mxnet.s3.cn-north-1.amazonaws.com.cn https://discuss.gluon.ai ...

  10. 【[SDOI2014]数数】

    被慎老师教育数位\(dp\)怎么写了 看来我数位\(dp\)的写法太落后了 这道题很显然就是一个\(AC\)自动机上的数位\(dp\),按照套路 我们可以设计\(dp[i][j][0/1]\)表示匹配 ...