30分钟-算法链表实战演练
Posted 栗子~~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了30分钟-算法链表实战演练相关的知识,希望对你有一定的参考价值。
前言
如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。
而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!
30分钟-算法链表实战演练
01 什么是链表?
02 实战
废话不多说,放我的练习demo源码,运行走起来(只供参考哈,上面注释写的蛮全的):
/**
* 有头结点链表实现
* @author yangzhenyu
* */
public class LNode<T> {
T data;
LNode next;
}
package com.yzy.demo.javatest.link;
/**
* 单链表生成
* */
public class LinkList<T> {
//头部结点
LNode head = new LNode();
//当前结点
LNode cur = head;
/**
* 链表新增
* */
public <T>void push(T msg){
LNode tmp = new LNode();
tmp.data = msg;
cur.next = tmp;
//通过引用来实现结点递增
cur = tmp;
}
/**
* 链表删除
* 原理 前驱结点.next = 后继结点
* */
public <T>void delete(T msg){
//前驱结点
LNode innerCur = new LNode();
//后继结点
LNode next = new LNode();
for (cur = head.next;cur!=null;cur = cur.next){
if (msg instanceof Integer){
if (msg == cur.data){
next = cur.next;
innerCur.next = next;
}
}else {
System.out.println("不支持这个种类删除");
}
innerCur = cur;
}
}
public static void main(String[] args) {
LinkList<Integer> linkList = new LinkList<>();
for (int i=0;i<5;i++){
linkList.push(i);
}
for (linkList.cur =linkList. head.next;linkList.cur!=null;linkList.cur = linkList.cur.next){
System.out.println("删除结点前:"+linkList.cur.data);
}
System.out.println("=========================================");
//删除结点
linkList.delete(3);
for (linkList.cur =linkList. head.next;linkList.cur!=null;linkList.cur = linkList.cur.next){
System.out.println("删除结点后:"+linkList.cur.data);
}
}
}
运行:
以上是关于30分钟-算法链表实战演练的主要内容,如果未能解决你的问题,请参考以下文章
GitHub重磅开源!《计算机视觉实战演练:算法与应用》代码数据集在线学习
GitHub重磅开源!《计算机视觉实战演练:算法与应用》代码数据集在线学习
GitHub开源在线学习资料《计算机视觉实战演练:算法与应用》