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;
}
}
分享到:
相关推荐
输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。 Input 输入多个整数,以-1作为结束标志。 Output 输出逆置后的单链表数据。 ...
单链表逆置部分代码,应该有用,第一次上传文件
例如,单链表的逆置,单链表的合并,找到单链表的中间节点等的算法实现。下面这个是单链表的结构体的定义: 代码如下:typedef struct LNode{ ElemType data; struct LNode *next;}LinkList;下面的基本的单链表的...
讲解数据结构的常见算法及其代码,以及整个程序原代码,适合广大初级以及入门朋友学习 参考!数据结构与算法基本程序目录 一、 线性表及其操作 1、 尾插法建立一个单链表,并按顺序输出 2、 单链表的元素查找,按...
数据结构实验链栈代码(单链表的建立与输出,合并,删除重复值,逆置 )
线性表综合题 (1) 按照输入的顺序建立顺序表 (2) 对顺序表进行排序(直接插入、冒泡、选择、快速、合并) (3) 按照由大到小的顺序建立一个单链表 (4) 链表逆置 (5) 将顺序表和链表合并成一个有序表。...
二:内容:1、已知带头结点的动态单链表L中的结点是按整数值递增排序的,试写一算法将值为x的结点插入到表L中,使L仍然有序。 2、设计一算法,逆置带头结点的动态链表L。要求利用原表的结点空间,并要求用尽可能少的...
2、理解和掌握单链表的类型定义方法和结点生成方法。 3、掌握单向链表的插入、删除算法及其应用算法的程序实现。 四、实验内容: 1、随机产生或键盘输入一组元素,建立一个带头结点的单向链表(无序)。 2、遍历单向...
单链表建立 单链表测长 单链表打印 单链表节点查找 单链表节点插入 单链表节点删除 单链表逆置 寻找单链表中间元素<参考书上> /* 解决办法(时间复杂度O(n)): 1.设置两个指针:middle中间元素、current当前遍历的...
2. 掌握单链表基本操作及两个有序表归并、单链表逆置等操作的实现。 二 、实验要求 1.预习C语言中结构体的定义与基本操作方法。 2.对单链表的每个基本操作用单独的函数实现。 3.编写完整程序完成下面的实验内容并...
<br>实验二 单链表结构及计算 实验目的: 通过实验掌握下列知识: 1、熟悉线性表的基本运算在两种存储结构(顺序结构和链式结构)上的实现; 2、继续熟悉VC编程、编译和调试环境; 内容及步骤:...
实例098 头插入法建立单链表 132 3.3 栈和队列 133 实例099 应用栈实现进制转换 133 实例100 用栈设置密码 135 实例101 栈实现行编辑程序 138 实例102 括号匹配检测 141 实例103 用栈及递归计算多项式...