数据结构之单链表(golang版)
线性表之单链表
package main//线性表中的链式存储结构
//第一个节点为头节点,并不真实保存数据,头节点基本代表了整个链表import ("fmt"
)type Elem inttype LinkNode struct {Data ElemNext *LinkNode
}//生成头节点
func New() *LinkNode {//下面的data可以用来表示链表的长度return &LinkNode{0, nil}
}//在链表的第i个位置前插入一个元素e,复杂度为o(n)
func (head *LinkNode) Insert(i int, e Elem) bool {p := headj := 1for nil != p && j < i {p = p.Nextj++}if nil == p || j > i {fmt.Println("pls check i:", i)return false}s := &LinkNode{Data: e}s.Next = p.Nextp.Next = sreturn true
}//遍历链表
func (head *LinkNode) Traverse() {point := head.Nextfor nil != point {fmt.Println(point.Data)point = point.Next}fmt.Println("--------done----------")
}//删除链表中第i个节点,复杂度为o(n)
func (head *LinkNode) Delete(i int) bool {p := headj := 1for (nil != p && j < i) {p = p.Nextj++}if nil == p || j > i {fmt.Println("pls check i:", i)return false}p.Next = p.Next.Nextreturn true
}// 获取链表中的第i个元素,复杂度为o(n)
func (head *LinkNode) Get(i int) Elem {p := head.Nextfor j:= 1; j< i ;j++ {if nil == p {//表示返回错误return -100001}p=p.Next}return p.Data
}func main() {linkedList := New()linkedList.Insert(1, 9)linkedList.Insert(1, 99)linkedList.Insert(1, 999)linkedList.Insert(1, 9999)linkedList.Insert(1, 99999)linkedList.Insert(1, 999999)linkedList.Traverse()linkedList.Delete(4)linkedList.Traverse()e := linkedList.Get(4)fmt.Println(e)
}
转载于:https://www.cnblogs.com/nyist-xsk/p/11351893.html
数据结构之单链表(golang版)相关推荐
- 数据结构:单链表中在P结点前插入S结点
标题:数据结构:单链表中在P结点前插入S结点 在数据结构的习题中偶然看到了一个题目 已知在单链表中P不是首元结点也不是尾元结点,在P结点前插入S结点 #include<stdio.h> # ...
- 基本的数据结构:单链表(Singly Linked List)
一.基本的数据结构:单链表(Singly Linked List) 什么是单链表? 下面是百度百科给出的官方解释: 单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素.链表 ...
- Java数据结构——用单链表编写一个简易通讯录
Java数据结构--用单链表编写一个简易通讯录 1.定义线性表的抽象数据类型(接口) 2.定义单链表的结点Node类 3.定义数据域中的联系人Person类 4.编写顺序表(类) 5.编写测试程序(m ...
- 重温一遍数据结构之单链表(golang版)
说明 上一篇说的是线性表中的顺序存储结构,他的读取复杂度虽然是o(1),但是它的缺点也很明显,插入和删除需要移动很多元素,而且需要分配一块连续的内存区域 线性表之单链表 单链表在一定程度上解决了一部分 ...
- 【 数据结构 】单链表的实现 - 详解(C语言版)
目录 前言: 顺序表的缺陷: 单链表:(Single Linked List) 概念及结构: 单链表的实现: 头文件:SList.h malloc函数: free函数: 具体函数的实现:SList.c ...
- 【数据结构】单链表的实现
文章目录 1. 链表 1.1 链表的概念及结构 1.2 链表的分类 1.3 链表的实现 1. 4 结尾 1. 链表 之前我们实现了顺序表,接下来来学习链表,并且理解顺序表和链表的区别 1.1 链表的概 ...
- 数据结构:单链表——带头结点与不带头结点步骤详解
单链表:带头结点与不带头结点详解 在本人的另一篇文章中,通过java实现了带头结点和不带头结点的单链表,有兴趣的小伙伴可以去看下数据结构(一):链表(Linked List) 这两天回顾下链表的知识, ...
- 【C数据结构】单链表的实现以及链表和顺序表的优缺点
文章目录 一.链表和顺序表的相辅相成 二.认识链表的最简单结构(单链表) 1.单链表的结构: 2.单链表的简单操作实现: (1).提前准备(头文件和测试源文件) (2).单链表的头插.尾插与创建一个新 ...
- 大家一起学数据结构之单链表
最近工作上得一些感触,要想不当码农学好数据结构是必须滴. 好了,话不多说,下面开始第一个内容 单链表 一.先来介绍下单链表得结构吧 大概就这样了,别嫌丑. 单链表有带头结点得和不带头结点得,其中每个节 ...
最新文章
- 数据标准化(归一化)
- CTO说了,delete后不加limit,直接滚蛋!
- 苹果CMS V10 播放记录_苹果cms整合dplayer播放器增加记忆+P2P播放+自动下一集
- spring 查找实现类_69道Spring面试题和答案
- python学习:删除空白
- android图片添加多行文字,Android使用SpannableString实现多行文字开头放置标签图案...
- Quartus II下进行SignalTap仿真
- k2p拆机ttl刷breed_最新k2p 22.10.3.42;22.10.3.38和k2 22.6.532.231拆机ttl刷breed图文教程
- 家用NAS进阶折腾之旅—常见NAS系统介绍和一些体会以及QNAP 威联通 TS-563 NAS使用感受
- 建立数据地图,盘活数据资产!
- 亲戚关系关系算法java程序_并查集1——查找亲戚关系
- 4种JavaScript中获取HTML元素的方式
- java delete()_Java File delete()用法及代码示例
- jQuery ajax 文件下载
- 如何管理一个外包团队小总结
- CSS3 vertical-align属性解决图片留白问题
- crypto buuctf 凯撒?替换?呵呵!
- aws mysql 多区_Amazon RDS 多可用区部署
- 原来是这么做的,在抖音解说电影,6个月赚了40w?
- 每日一题 LeetCode909. 蛇梯棋 java题解