博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【数据结构连载一线性表】【单向循环链表】javascript
阅读量:476 次
发布时间:2019-03-06

本文共 3850 字,大约阅读时间需要 12 分钟。

function Node() {
this.data = null; this.next = null;}function CycleLinkedList() {
this.length = 0; this.rear = new Node(); this.rear.next = this.rear; this.empty = function () {
return this.rear === this.rear.next }; this.exist = function (value) {
let cur = this.rear.next; const tail = this.rear while (cur !== tail) {
if (cur.data === value) {
return true; } cur = cur.next; } return false }; this.get = function (index) {
if (index >= l.length) {
throw new Error("下标越界") } let cur = l.rear.next; const tail = l.rear let n = 0; while (cur !== tail) {
if (n === index) {
return cur.data } cur = cur.next; n++; } }; this.add = function (value) {
let cur = this.rear; const new_node = new Node(); new_node.data = value; new_node.next = cur.next; this.rear.next = new_node; this.length++; }; this.append = function (value) {
const new_node = new Node(); new_node.data = value; let tail = this.rear; let cur = this.rear; while (cur.next !== tail) {
cur = cur.next; } new_node.next = cur.next; cur.next = new_node; this.length++; }; this.show = function () {
const tail = this.rear; let cur = this.rear.next; let s = ""; while (cur !== tail) {
s += cur.data + " " cur = cur.next; } console.log(s) }; this.insert = function (index, value) {
let cur = this.rear; const tail = this.rear; let n = 0; const new_node = new Node(); new_node.data = value; while (cur.next !== tail) {
if (n === index) {
new_node.next = cur.next; cur.next = new_node; this.length++; return } cur = cur.next; n++; } new_node.next = cur.next; cur.next = new_node; this.length++; }; this.index = function (value) {
let cur = this.rear.next; const tail = this.rear; let n = 0; while (cur !== tail) {
if (cur.data === value) {
return n } cur = cur.next; n++; } return -1 }; this.delete = function (index) {
if (index >= this.length) {
throw new Error("下标越界:" + index); } let cur = this.rear; const tail = this.rear; let n = 0; while (cur.next !== tail) {
if (n === index) {
cur.next = cur.next.next; this.length--; } n++; cur = cur.next; } }; this.remove = function (value) {
let cur = this.rear; const tail = this.rear; while (tail !== cur.next) {
if (cur.next.data === value) {
cur.next = cur.next.next; this.length--; return } cur = cur.next; } throw new Error("删除数据不存在" + value); }; this.pop = function () {
let cur = this.rear; const tail = this.rear; while (tail !== cur.next.next) {
cur = cur.next; } const data = cur.next.data; cur.next = cur.next.next; this.tail = cur this.length--; return data; }}l = new CycleLinkedList();l.add(10)l.add(9)l.add(8)l.add(7)l.append(7)l.insert(8, 19)console.log(l.exist(19))console.log(l.index(10))l.show()console.log(l.pop())console.log(l.pop())l.show()

转载地址:http://haxdz.baihongyu.com/

你可能感兴趣的文章