java|java实现单链表的初始化,创建,删除,插入,查找,排序,同项删除,退出等功能

实习的最后一天,是在不想这样干坐着,上网看着那些无聊的信息。 送上一句:此刻打盹,你将做梦,此刻学习,你将圆梦。 数据结构与算法是我一直想去精通,但是一直没搞出个所以然来,好吧,今天就从单链表下手吧。结点包含两个域: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实现单链表的初始化,创建,删除,插入,查找,排序,同项删除,退出等功能】

    推荐阅读