`

单链表的建立及逆置代码,方法二

 
阅读更多
public class Test {

/**
* @param args
*/
public static void main(String[] args) {

 //单边链表的生成与反转,方法二
		int []arr={3,5,1,2,4};
		ListTest listTest=new ListTest();
		Node  head=listTest.create(arr);
	    Node sourNode=head;
		while(sourNode!=null){
			System.out.print("  "+sourNode.getValue());
			sourNode=sourNode.getNext();
		}
		System.out.println(" ");
		Node reNode=listTest.revers(head);
		while(reNode!=null){
			System.out.print("  "+reNode.getValue());
			reNode=reNode.getNext();
		}

}

} 



public class ListTest {
public Node create(int []arr) {
		Node head=new Node(arr[0]);
		Node cur=null;
		Node tempNode=null;
		for (int i = 1; i < arr.length; i++) {
			tempNode=new Node(arr[i]);
			if(i==1){
				head.setNext(tempNode);
			}else {
				cur.setNext(tempNode);
			}
			cur=tempNode;
		}
		return head;
		
	}
	public  Node revers(Node head){
		if((null==head)||(null==head.getNext())){
			return head;
			
		}
		Node pPre=head;
		Node pNext=null;
		Node  curNode=pPre.getNext();
		while(curNode!=null){
			
			pNext=curNode.getNext();
			curNode.setNext(pPre);

			pPre=curNode;
			curNode=pNext;
		}
		head.setNext(null);
		return pPre;
	}

}

package com.List.sym;

public class Node {
     private int value;
     private Node next;
     public  Node(int value){
    	 this.value=value;
     }
	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}

	public Node getNext() {
		return next;
	}

	public void setNext(Node next) {
		this.next = next;
	}

}







分享到:
评论

相关推荐

    单链表逆置c语言数据结构.cpp

    输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。 Input 输入多个整数,以-1作为结束标志。 Output 输出逆置后的单链表数据。 ...

    C++单链表模版(逆置、插入。。。。。。)

    本模版提供了单链表的多种操作,如头插法、尾插法、定位插法、删除、查找和逆置等。以下是对这些功能的详细说明: 1. **头插法**:在链表的头部插入一个新节点。这种方法不需要移动已有节点,只需要更新头节点和新...

    单链表逆置

    ### 单链表逆置知识点解析 #### 一、单链表基础概念 单链表是一种常见的线性数据...通过以上分析,我们可以了解到单链表逆置的基本原理及其在代码中的实现方式。对于理解和掌握数据结构与算法的设计有着重要的意义。

    数据结构单链表、双链表的逆置算法.doc

    在上面的代码中,我们首先定义了链表结点的结构体,然后使用头插法建立单链表,最后使用 ExchangeList 函数将链表逆置。 双链表实现逆置 双链表是一种链式数据结构,它由多个结点组成,每个结点包含数据域、前驱...

    用C语言实现单链表的各种操作(一)

    例如,单链表的逆置,单链表的合并,找到单链表的中间节点等的算法实现。下面这个是单链表的结构体的定义: 代码如下:typedef struct LNode{ ElemType data; struct LNode *next;}LinkList;下面的基本的单链表的...

    单链表的完整代码.pdf

    本文档提供了单链表的完整代码,包括链表的创建、遍历、查找、插入、删除、逆置、合并等操作的实现。 一、链表的创建 单链表的创建函数为`creaTaiList()`,该函数使用`malloc`函数动态分配内存,创建一个链表的头...

    2.3.2_3_单链表的建立 (2)1

    总结一下,建立单链表的方法主要有尾插法和头插法。尾插法适用于需要保持元素原有顺序的情况,通过设置表尾指针可以高效地插入新元素;头插法则用于创建逆序的链表,例如链表逆置。理解这两种方法的原理并熟练掌握其...

    数据结构原代码(包括线性表 链表 树性表)

    讲解数据结构的常见算法及其代码,以及整个程序原代码,适合广大初级以及入门朋友学习 参考!数据结构与算法基本程序目录 一、 线性表及其操作 1、 尾插法建立一个单链表,并按顺序输出 2、 单链表的元素查找,按...

    单链表反转python实现代码示例

    p1 = ListNode(2) # 建立链表1-&gt;2-&gt;3-&gt;4-&gt;None p2 = ListNode(3) p3 = ListNode(4) head.next = p1 p1.next = p2 p2.next = p3 newhead = None p = recurse(head, newhead) # 输出链表4-&gt;3-&gt;2-&gt;1-&gt;None ``` 无论是...

    单链表及其应用

    本次实验旨在让学生通过具体的应用案例——电话本模拟程序来深入理解单链表的特性,并掌握在其上的各种操作方法。 #### 实验内容概述 实验分为两大部分:首先,利用单链表实现电话本功能;其次,选做部分为设计...

    数据结构实验原代码

    此外,通过编写代码实现单链表的建立、输出、合并、删除重复值以及逆置等功能,不仅锻炼了编程技能,还提高了问题解决的能力。 总之,通过本次实验,我们不仅掌握了单链表的基本操作,而且通过实践加深了对数据结构...

    软件工程大作业

    单链表逆置算法的代码实现: ```c void invert(linklist*&head) { datatype q; linklist* p = head; linklist* q = NULL; while (p != NULL) { q = p-&gt;next; p-&gt;next = q-&gt;prev; q-&gt;prev = p; p = q; } ...

    数据结构上机实验报告.docx

    2. **单链表逆置实现**:`invert`函数采用了典型的双指针方法,一个指针`p`用于记录当前节点,另一个指针`q`用于记录`p`的下一个节点。通过不断交换`q-&gt;next`与`p`的指向,实现链表的逆置。最后更新头节点的指向,...

    数据结构伪代码转化成为可执行源代码

    - **单链表逆置**:通过迭代或递归方式改变每个节点的指针方向,使链表反向。 - **约瑟夫环问题**:使用栈或队列来模拟环形结构,根据设定的规则删除节点。 2. **栈**: - **建立堆栈**:初始化空栈。 - **进栈...

    链表的基本操作(插入、删除、显示,逆序等)

    插入到头部的代码可能如下: ```c void insertAtHead(int value) { Node* newNode = (Node*)malloc(sizeof(Node)); newNode-&gt;data = value; newNode-&gt;next = head; head = newNode; } ``` 如果要插入到尾部...

    实验4 线性表实验(二).docx

    (2)应用实验题由 1~ n(例如 n =10 000 000)的 n 个整数建立顺序表 a(采用列表表示)和带头结点的单链表 h,编写一个实验程序输出分别将所有元素逆置的时间。 在这个实验中,我们将使用 Python 语言实现顺序表...

    数据结构课程设计作业+源代码+文档说明

    线性表综合题 (1) 按照输入的顺序建立顺序表 (2) 对顺序表进行排序(直接插入、冒泡、选择、快速、合并) (3) 按照由大到小的顺序建立一个单链表 (4) 链表逆置 (5) 将顺序表和链表合并成一个有序表。...

    数据结构与算法教学大纲程序代码

    二:内容:1、已知带头结点的动态单链表L中的结点是按整数值递增排序的,试写一算法将值为x的结点插入到表L中,使L仍然有序。 2、设计一算法,逆置带头结点的动态链表L。要求利用原表的结点空间,并要求用尽可能少的...

    数据结构伪代码转化成为可执行源代码.docx

    - **单链表就地逆置** - 实现链表的逆序排列,即改变各节点之间的连接关系,使链表反转。 - **约瑟夫环问题** - 解决约瑟夫环问题,这是一种典型的递归问题,在计算机科学中有广泛的应用。 #### 三、栈及其操作 ...

    c语言数据结构与算法详细代码

    描述中的程序包括了单链表的创建、查找、插入、删除和双向链表、单链表逆置以及约瑟夫环问题的解决。 1. **尾插法建立单链表**:通过不断在链表尾部插入新节点,构建一个链表。 2. **元素查找**:根据内容在链表中...

Global site tag (gtag.js) - Google Analytics