数据结构篇(4) 实现双向循环链表
2022/3/30 6:19:58
本文主要是介绍数据结构篇(4) 实现双向循环链表,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
//双向循环链表 class DbCirList extends DbList { constructor() { super(); this.head.next = this.head; this.head.prev = this.head; } /** * * @param item //插入的位置 * @param element 插入的值 */ insert(item: any, element: any): void { if(this.find(item)) { return ; } if(this.find(element)) { return; } let currNode = this.find(item); let newNode = new NodeItem(element); newNode.next = currNode.next; newNode.prev = currNode; currNode.next&&(currNode.next.prev = newNode); currNode.next = newNode; this.size++; } /** * * @param item 删除的值 */ remove(item: any): void { if (item === 'head') { this.head.next = this.head; this.head.prev = this.head; this.size = 0; return; } let currNode = this.find(item); if(currNode.next&&currNode.prev) { // 如果存在值为item的节点 currNode.next.prev = currNode.prev; currNode.prev.next = currNode.next; this.size--; } } /** * * @param element 添加的值 */ append(element: any): void { let newNode = new NodeItem(element); let lastNode = this.findLast(); newNode.next = lastNode.next; lastNode.next&&(lastNode.next.prev = newNode); lastNode.next = newNode; newNode.prev = lastNode; this.size++; } } let test = new DbCirList() let arr = [1, 2, 3, 4, 5, 6, 7]; for(let i=0; i<arr.length; i++) { test.append(arr[i]); } test.remove(1); test.display();
这篇关于数据结构篇(4) 实现双向循环链表的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南