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格式.当年照着视频学习的时候记录下来的,在使用的时候直接拿来修改修改修改能节约不少时间的. /********************* ...
随机推荐
- flex 特性
flex grow 分配的比例是对整体,比如 A grow 3 B grow 4,A连同margin一块是3
- 在 CentOS7最小化 下的编译安装:Nginx 1.5.2 + PHP 5.5.7 + MySQL 5.6.10
1.安装Nginx: 安装包目录 mkdir -p /Data/tgzcd /Data/tgz 安装编译依赖 yum install wget yum install pcre yum install ...
- 每天一个Linux命令(23)chmod命令
chmod命令用来变更文件或目录的权限. 在UNIX系统家族里,文件或目录权限的控制分别以读取.写入.执行3种一般权限来区分,另有3种特殊权限可供运用.用户可以使用chmod指令去变更文件与目 ...
- 关于tomcate跨域配置的配置问题和表头加入新属性的过滤
1 .在项目中常常遇到本地访问服务器上的链接数据访问不到,并出现如下问题: 这是因为tomcate 的配置中过滤了请求方式, 解决方案: 1.在tomcate中引入两个jar包:java-proper ...
- 【leetcode刷题笔记】Spiral Matrix II
Given an integer n, generate a square matrix filled with elements from 1 to n2 in spiral order. For ...
- wget下载文件
http://blog.sina.com.cn/s/blog_4af3f0d20100n1k0.html 一.下载目录 #wget -r -np -nd http://example.com/pack ...
- 百度地图省市县乡镇街道对应ZOOM级别
百度地图省市县乡镇街道对应ZOOM级别
- Python习题-一个函数实现读写功能
def new_op_file(filename,content=None): f = open(filename,'a+') f.seek(0) if content: #非空即真,如果有内容就往下 ...
- mybatis学习第(一)天
课程安排: Mybatis和springMVC通过订单商品案例驱动 第一天:基础知识(重点,内容量多) 对原生态jdbc程序(单独使用jdbc开发)问题总结 Mybatis框架原理 Mybatis的入 ...
- QTableWidget设计原则
一.组成结构: 列表控件由水平表头(self.horizontalHeader()).垂直表头(self.verticalHeader())和单元格(QTableWidgetItem)组成 其中表头又 ...