js链表操作
- <!doctype html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Document</title>
- <script>
- function Node(v){
- this.value=v;
- this.next=null;
- }
- function ArrayList(){
- this.head=new Node(null);
- this.tail = this.head;
- this.append=function(v){
- node = new Node(v);
- this.tail.next=node;
- this.tail=node;
- }
- this.insertAt=function(ii,v){
- node = new Node(v);
- //找到位置的节点
- tempNode=this.head;
- for(i=0;i<ii;i++){
- if(tempNode.next!=null){
- tempNode=tempNode.next;
- }else{
- break;
- }
- }
- node.next=tempNode.next;
- tempNode.next = node;
- }
- this.removeAt=function(ii){
- node1=this.head; //要删除节点的前一个节点
- for(i=0;i<ii;i++){
- if(node1.next!=null){
- node1=node1.next;
- }else{
- break;
- }
- }
- node2=node1.next; //要删除的节点
- if(node2!=null){
- node1.next = node2.next;
- if(node2.next==null){
- this.tail=node1;
- }
- }
- }
- }
- function Iterator(arryList){
- this.point=arryList.head;
- this.hasNext=function(){
- if(this.point.next!=null){
- this.point=this.point.next;
- return true;
- }else{
- return false;
- }
- }
- this.next=function(){
- return this.point.value;
- }
- }
- var arry = new ArrayList();
- arry.append(1);
- arry.append(2);
- arry.append(3);
- arry.insertAt(1,8);
- arry.insertAt(0,9);
- arry.insertAt(100,100);
- arry.insertAt(1000,1000);
- arry.insertAt(1,200);
- arry.insertAt(200,2000);
- iterator = new Iterator(arry);
- while(iterator.hasNext()){
- document.write(iterator.next());
- document.write('<br/>');
- }
- </script>
- </head>
- <body>
- </body>
- </html>
js链表操作的更多相关文章
- js简单操作Cookie
贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...
- JAVA 链表操作:循环链表
主要分析示例: 一.循环链表简述 二.单链表循环链表 三.双链表循环链表 一.循环链表简述 循环链表即链表形成了一个循环的结构,尾节点不再指向NULL,而是指向头节点HEAD,此时判定链表的结束是尾节 ...
- 单链表操作B 分类: 链表 2015-06-07 12:42 15人阅读 评论(0) 收藏
数据结构上机测试2-2:单链表操作B TimeLimit: 1000ms Memory limit: 65536K 题目描述 按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除 ...
- YTU 2620: B 链表操作
2620: B 链表操作 时间限制: 1 Sec 内存限制: 128 MB 提交: 418 解决: 261 题目描述 (1)编写一个函数createlink,用来建立一个动态链表(链表中的节点个数 ...
- 使用HTML5的JS选择器操作页面中的元素
文件命名为:querySelector.html,可在Chrome浏览器中预览效果. 1 <!DOCTYPE html> 2 <html lang="en"> ...
- C# 链表操作
关于链表操作,在C#当中微软已经提供了一个LinkedList<T>的数据结构,通过这个类提供的一系列方法就能够实现链表操作. 这里我提供一段代码,这是在论坛里面有人提问时给出的代码,它实 ...
- C语言,单链表操作(增删改查)(version 0.1)
这天要面试,提前把链表操作重新写了一遍.备份一下,以备不时之需. 希望有人能看到这篇代码,并指正. // File Name : list.h #include "stdafx.h" ...
- node.js高效操作mongodb
node.js高效操作mongodb Mongoose库简而言之就是在node环境中操作MongoDB数据库的一种便捷的封装,一种对象模型工具,类似ORM,Mongoose将数据库中的数据转换为Jav ...
- C语言链表操作模板(添加,删除,遍历,排序)
C语言链表操作模板,摘自郝斌的C语言视频教程,简单的修改成了纯C格式.当年照着视频学习的时候记录下来的,在使用的时候直接拿来修改修改修改能节约不少时间的. /********************* ...
随机推荐
- python 批量修改预定字符串并将修改后的字符串插入文件指定位置
下面的例子是在文件的指定位置增加指定字符串的例子 修改配置文件: def add_str(pre_str): lines = [] flag = True f = open("z.txt&q ...
- Python常用转换函数
字符串转换为整数 int() 如int('2'). 字符串转换为浮点数 float() 如float('12.34') ASCII码转换为字符 chr() 如chr(97) 字符转换为ASCII码 o ...
- 第十篇、模块一、sys\os\hashlib模块的应用
一.模块分为三种 1)自定义模块 2)第三方模块 3)内置模块 如何导入模块? 下面两种: 1)import 模块名字 as 别名(重新给模块命名) 2)from 模块名字 import 功能( ...
- Havel-Hakimi定理 POJ1659
对于图的所有顶点,计算出每个顶点的度,度序列.给定一个序列判断序列是否可图. #include<cstdio> #include<algorithm> #include< ...
- castle windsor学习----- CastleComponentAttribute 特性注册
[CastleComponent("GenericRepository", typeof(IRepository<>), Lifestyle = LifestyleTy ...
- iOS App被拒原因以及解决方案总结。
Guideline 1.2 - Safety - User Generated Content Your app enables the display of user-generated conte ...
- BZOJ 1965 [Ahoi2005]SHUFFLE 洗牌:快速幂 + 逆元
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1965 题意: 对于扑克牌的一次洗牌是这样定义的,将一叠N(N为偶数)张扑克牌平均分成上下两 ...
- fatal error C1071: unexpected end of file found in comment
1.错误 #include<iostream> using namespace std; int main() { ..... return 0; } //如果把注释放到这里了,那么提交就 ...
- (转)java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明)
java向MySQL插入当前时间的四种方式和java时间日期格式化的几种方法(案例说明);部分资料参考网络资源 1. java向MySQL插入当前时间的四种方式 第一种:将java.util.Date ...
- Oracle学习笔记_04_多表查询
一.概念: 1.多表连接有以下几种分法: (1)内连接 vs 外连接 (左.右.满) (2)等值连接 vs 不等值连接 (3)非自连 ...