怎么使用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 = 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();

}

}

完成了第一步,初始化了,接下来要做的就是插入、删除了,接着把相关的时间什么复杂度搞一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值