(js描述的)数据结构[集合结构](6) 一.集合结构特点 1.集合中的元素不能重复. 2.集合是无序的. 二.集合的代码实现 function Set() { this.items = {} //1. add方法 Set.prototype.add = function(value) { //判断集合中是否包含元素 if (this.has(value)) { return false } //把数据添加到集合中 this.items[value] = value return true }…
(js描述的)数据结构[栈结构](2) 一.什么是栈结构 1.一种受限制的线性结构,这种结构可以基于数组来实现. 2.可以抽象成一个容器,上面的是栈顶,底下的是栈底.所以仅允许对栈顶进行操作, 二.栈结构的应用 1.函数式调用栈:基于栈的形式来进行函数的整体调用. 2.递归:栈溢出就是其中的一点. 三. 栈结构常见的操作 push(): 添加一个元素到栈顶. pop(): 移除栈顶的元素. peek(): 返回栈顶的元素,不对栈结构做任何的修改. isEmpty(): 判断栈是否为空,不空的话返…
(js描述的)数据结构[队列结构](3) 一.队列结构的特点: 1.基于数组来实现,的一种受限的线性结构. 2.只允许在表头进行删除操作,在表尾进行插入操作. 3.先进先出(FIFO) 二.队列的一些应用: 1.按一定顺序打印文档,执行输出后的结果. 2.多线程的实际执行顺序,就如队列结构相似. 三.队列的封装: function Queue() { this.items = [] //向队尾添加一个元素 Queue.prototype.enqueue = function (element)…
1.队列:和栈中的情况不同,队列中的数据项不总是从数组下标0开始,移除一个数据项后,队头指针会指向下标较高的数据项,其特点:先入先出 2.图解 3.队列的实现代码: 3.1.Queue.java package com.cn.queue; /** * 数据结构之队列实现 * @author Administrator * */ public class Queue { private int maxsize; private long[] queuearray; private int fron…
java实现 数据结构:链表. 栈. 队列.优先级队列.哈希表   数据结构javavector工作importlist 最近在准备找工作的事情,就复习了一下java.翻了一下书和网上的教材,发现虽然很多书是用java讲数据结构的,但是侧重于将数据结构本身的知识,利用java本身的类库来实现数据结构的系统性的讲解少之又少,所以在此做一下总结,方便各位正在准备工作的和用java实现数据结构的朋友们. 附:代码下载:http://download.csdn.net/detail/sunnyskyli…
(js描述的)数据结构[哈希表1.1](8) 一.数组的缺点 1.数组进行插入操作时,效率比较低. 2.数组基于索引去查找的操作效率非常高,基于内容去查找效率很低. 3.数组进行删除操作,效率也不高. 二.哈希表 1.几乎所有的编程语言都有直接或间接的应用这种数据结构 2.哈希表是基于 数组 实现的,但相对于数组有很多优势. 1.它可以提供非常快速的 插入-删除-查找 操作 2.无论多少数据,插入和删除需要接近常量的时间.即O(1)的时间级 3.哈希表的速度比树还要快,基本可以瞬间找到想要的元素…
(js描述的)数据结构[双向链表](5) 一.单向链表的缺点 1.只能按顺序查找,即从上一个到下一个,不能反过来. 二.双向链表的优点 1.可以双向查找 三.双向链表的缺点 1.结构较单向链表复杂. 2.占用内存比单项链表多. 四.双向链表的结构 五.双向链表的代码实现 function DoublyLinkedList() { // 内部节点类 function Node(data) { this.data = data this.next = null this.prev = null }…
(js描述的)数据结构 [链表](4) 一.基本结构 二.想比于数组,链表的一些优点 1.内存空间不是必须连续的,可以充分利用计算机的内存,事项灵活的内存动态管理. 2.链表不必再创建时就确定大小,并且大小可无限的延申下去 3.链表再插入和删除数据时,比数组的效率高很多 三.相比于数组,链表的一些缺点 1.链表访问任何一个位置的元素时,都需要从头开始访问 2.无法通过下标直接访问元素,需要从头开始访问,直到找到对应的元素 四.链表的封装 // 封装链表类 function LinkedList(…
(js描述的)数据结构[字典](7) 一.字典的特点 1.字典的主要特点是一一对应关系. 2.使用字典,剋通过key取出对应的value值. 3.字典中的key是不允许重复的,而value值是可以重复,并且字典中的key是无序的. 字典和映射关系: 字典和数组: 字典和对象: 二.代码实现字典 function Dictionary() { this.dic = {} // 1. add方法 Dictionary.prototype.add = function(key, value) { th…
前言:找了上课时数据结构的教程来看,但是用的语言是c++,所以具体实现在网上搜大神的博客来看,我看到的大神们的博客都写得特别好,不止讲了最基本的思想和算法实现,更多的是侧重于实例运用,一边看一边在心里隐隐歌颂大神的厉害,然后别人的厉害不是我的,所以到底看得各种受打击+头昏脑涨,写这个系列是希望自己能够总结学到东一块.西一下的知识,因为水平有限+经验不足,所以在此只说最基础的思想,附上我自己的算法实现(肯定还有更优解),如果要想看进阶版的,可以在园里搜“数据结构”,各种语言实现和进阶提升的文章有很…