马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
java中提供了双向链表的动态数据结构 --- LinkedList,它同时也实现了List接口,可以看成平凡的列表来使用。也可以自界说实现链表。
单向链表:一个节点=本节点数据+下个节点地点
给定两个有序链表的头指针head1和head2,打印两个链表的公共部分。
- public class Lee {
- private Node head1;
- private Node head2;
- Lee(){
- this.head1= new Node(0);
- this.head2= new Node(0);
- }
- public void insert1(int data){
- Node newNode = new Node(data);
- Node curNode = head1;
- while (curNode.next!=null){
- curNode=curNode.next;
- }
- curNode.next=newNode;
- }
- public void insert2(int data){
- Node newNode = new Node(data);
- Node curNode = head2;
- while (curNode.next!=null){
- curNode=curNode.next;
- }
- curNode.next=newNode;
- }
- static class Node{
- public int value;
- public Node next;
- Node(int data){
- this.value=data;
- this.next=null;
- }
- }
- public void Plink(Node head1,Node head2){
- while (head1!=null&&head2!=null){
- if (head1.value<head2.value)
- head1=head1.next;
- else if (head1.value>head2.value)
- head2=head2.next;
- else{
- System.out.println(head1.value+" ");
- head1=head1.next;
- head2=head2.next;
- }
- }
- }
- public static void main(String[] args) {
- Lee lee = new Lee();
- lee.insert1(1);
- lee.insert1(3);
- lee.insert1(4);
- lee.insert2(4);
- lee.insert2(5);
- lee.insert2(6);
- lee.Plink(lee.head1, lee.head2);
- }
- }
复制代码
双向链表:一个节点=上个节点地点+本节点数据+下个节点地点
如:界说两个函数,实如今双向链表的头部及尾部插入节点
- public class Lee {
- private Node head;
- Lee(){
- this.head= new Node(0);
- }
- public void insertHead(int data){
- Node newNode = new Node(data);
- newNode.next=head;
- head.pre=newNode;
- head=newNode;
- }
- public void insertTail(int data){
- Node newNode = new Node(data);
- Node current = head;
- while (current.next!=null){
- current=current.next;
- }
- current.next=newNode;
- newNode.pre=current;
- }
- public void printList(Node head) {
- Node current = head;
- // 从头到尾打印链表
- while (current != null) {
- System.out.print(current.value + " -> ");
- current = current.next;
- }
- System.out.println("null"); // 表示链表结尾
- }
- static class Node{
- public int value;
- public Node pre;
- public Node next;
- Node(int data){
- this.value=data;
- this.pre=null;
- this.next=null;
- }
- }
- public static void main(String[] args) {
- Lee lee = new Lee();
- lee.insertTail(2);
- lee.insertTail(3);
- lee.insertTail(4);
- lee.insertHead(4);
- lee.printList(lee.head);
- }
- }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |