实习的最后一天,是在不想这样干坐着,上网看着那些无聊的信息。 送上一句:此刻打盹,你将做梦,此刻学习,你将圆梦。 数据结构与算法是我一直想去精通,但是一直没搞出个所以然来,好吧,今天就从单链表下手吧。结点包含两个域:data域---存放结点值的数据域;next域---存放结点的直接后继的地址(位置)的指针域(链域)。链表通过每个结点的链域将线性表的N个结点按其逻辑顺序链接在一起;每个结点只有一个链域的链表称为单链表(Single Linked List)。
第一:结点本身就是一个类,现在先声明结点类。
package demo.zhuchuan.first;
public class Node {/*节点类*/
private int data;
/*节点数据*/
private Node node_next;
/*节点的下一个节点*/
public Node(int val_data){ /*节点构造函数*/
this.data = https://www.it610.com/article/val_data;
node_next = null;
}
public void setNode_next(Node val_node){/*设置节点的下一个节点*/
node_next = val_node;
}
public Node getNode_next(){/*获取节点的下一个节点*/
return node_next;
}
public void printNode(){/*输出节点数据*/
System.out.println(this.data+" ");
}
}
第二:声明一个访问链表的类。
package demo.zhuchuan.first;
public class SingleLinkedList {/*单链表类*/private Node pointer_head,pointer_tail;
/*链表的头指针和尾指针,都是伪指针,实属节点*/public SingleLinkedList(){/*单链表构造函数*/
pointer_head = pointer_tail =null;
/*指针初始化都为空*/
}public boolean isEmpty(){/*判断链表是否为空函数*/
return pointer_head == null;
}public void addNode(int val_data){/*链表增加节点函数*/
if(this.isEmpty()){/*判断链表是否为空*/
pointer_head = pointer_tail = new Node(val_data);
/*链表为空,头指针和尾指针都指向新增节点*/
}else{
pointer_tail.setNode_next(new Node(val_data));
/*链表不为空,新增节点连接到表尾,尾指针指向新增节点*/
pointer_tail = pointer_tail.getNode_next();
}
}public void printListNode(){/*输出链表函数*/
for(Node temp = pointer_head;
temp != null;
temp = temp.getNode_next()){
temp.printNode();
}
}public static void main(String[] args) {SingleLinkedList singleLinkedList = new SingleLinkedList();
singleLinkedList.addNode(1);
singleLinkedList.addNode(2);
singleLinkedList.addNode(3);
singleLinkedList.printListNode();
}
}
完成了第一步,初始化了,接下来要做的就是插入、删除了,接着把相关的时间什么复杂度搞一下。
【java|java实现单链表的初始化,创建,删除,插入,查找,排序,同项删除,退出等功能】
推荐阅读
- Java|Java基础——数组
- 人工智能|干货!人体姿态估计与运动预测
- java简介|Java是什么(Java能用来干什么?)
- Java|规范的打印日志
- Linux|109 个实用 shell 脚本
- 程序员|【高级Java架构师系统学习】毕业一年萌新的Java大厂面经,最新整理
- Spring注解驱动第十讲--@Autowired使用
- SqlServer|sql server的UPDLOCK、HOLDLOCK试验
- jvm|【JVM】JVM08(java内存模型解析[JMM])
- 技术|为参加2021年蓝桥杯Java软件开发大学B组细心整理常见基础知识、搜索和常用算法解析例题(持续更新...)