public class Node{
int cargo;
Node next;
public Node(){
cargo=0;
next=null;
}
public Node(int cargo,Node next){
this.cargo=cargo;
this.next=next;
}
public String toString(){
return cargo+"";
}
public static void main(String args[]){
//Node nd=null;
//printBackward(nd);
Node node3=new Node(3,null);
Node node2=new Node(2,node3);
Node node1=new Node(1,node2);
printList(node1);
printBackwardNicely(node1);
printList(addFirst(0,node1));
}
public static void printList(Node list){
Node node=list;
System.out.print("(");
while(node!=null){
System.out.print(node);
if(node.next==null){
break;
}else{
System.out.print(",");
node=node.next;
}
}
System.out.print(")");
System.out.println();
}
public static void printBackward(Node list){
if(list==null) return;
//if(list==null) System.out.println(list);
Node head=list;
Node tail=list.next;
printBackward(tail);
System.out.print(head+",");
//递归为从后向前打印而生!
//相当于在print外加一个while循环
}
public static void printBackwardNicely(Node list){
System.out.print("(");
if(list!=null){
Node head=list;
Node tail=list.next;
printBackward(tail);
System.out.print(head);
}
System.out.println(")");
}
/*
printBackwordNicely()的妙处;将第一个
节点的tail调用printBackward()(每一个节点都输出“,”)
而后,输出最后的(head)。这样使最后一个head
不跟随","
*/
//愿意含糊定理:
//一个引用节点的变量,既可以仅仅代表该节点对象本身,
//但也可以代表节点所在链表的第一个对象。
public static Node addFirst(int i,Node node)
{
Node newNode=new Node(i,node);
return newNode;
}
}
分享到:
相关推荐
在本篇算法学习笔记中,对一系列重要且常用的算法进行了整理和总结,以下是对文档内容中提及的知识点的详细解读。 一、快速排序算法 快速排序是一种高效的排序算法,采用分治法策略,它的时间复杂度平均为O(nlogn)...
因此,在实际应用中,静态链表常用于小规模数据的存储,或者对内存使用有严格限制的环境。 理解并实现静态链表有助于深化对数据结构的理解,特别是在考虑内存管理和效率平衡时。通过阅读和分析`static_linear_list....
这份“数据结构和算法学习笔记(经典)”的PDF文档很可能包含了丰富的理论与实践内容,旨在帮助读者掌握这些关键概念。 1. **数据结构**:数据结构是指在计算机中组织和存储数据的方式,它决定了数据的操作效率和...
这份“数据结构与算法分析学习笔记”由罗聪编著,包含了丰富的源代码实例,旨在帮助读者深入理解并掌握这些关键概念。 数据结构是组织和管理数据的方式,它包括数组、链表、栈、队列、树、图等。数组是最基本的数据...
### Java数据结构学习笔记知识点详解 #### 一、数据结构与算法基础 1. **数据结构定义** - 数据结构是一门研究组织数据方式的学科,它与编程语言紧密相关,是实现高效程序设计的基础。 - 在软件开发中,合理选择...
【浙大C程序设计听课学习笔记】是一份深入学习C语言的重要资料,主要涵盖了浙江大学C程序设计课程的核心知识点。这份笔记旨在帮助学习者系统地掌握C语言编程的基础和高级概念,提升编程技能,并能理解计算机科学的...
这本"算法与数据结构学习笔记"涵盖了这两个核心概念的详细讲解,对于任何想要深入理解计算机科学原理、提高编程技能的人来说,都是一份宝贵的资源。 算法,简单来说,就是解决特定问题的步骤或指令集。它在计算机...
《C Primer Plus学习笔记》是一份为初学者准备的学习资源,旨在帮助读者理解和掌握C语言的基础知识。笔记可能包含作者在学习过程中的一些个人理解和错误,因此需要读者在使用时加以审阅和补充。 第一章介绍了`...
【标题】"C语言视频教程-谭浩强版-小甲鱼主讲-学习笔记.zip"揭示了这是一份以C语言为主题的视频教学资源,由知名编程教育家谭浩强的经典教材为基础,由网络知名讲师小甲鱼进行讲解。这份教程可能包含一系列的视频...
本学习笔记旨在为初学者提供一个清晰的C语言学习路径,通过一系列小程序和项目的实践,帮助读者逐步掌握C语言的核心概念。 1. **基本语法和数据类型** C语言的基础包括变量、常量、数据类型(如int、char、float等...
### Java学习笔记知识点详解 #### 一、Java面向对象编程思想 面向对象编程(Object-Oriented Programming, OOP)是Java的核心特性之一。通过封装、继承和多态这三个基本特征来实现。OOP能够提高代码的复用性和可...
### Java学习笔记知识点总结 #### 一、JVM与内存管理 **1.1 JVM基本概念** - **JVM(Java Virtual Machine)**: Java虚拟机是执行Java字节码的虚拟机,它提供了运行Java程序所需的环境。 **1.2 线程** - **线程...
本套学习笔记包含了丰富的实例、讲解和练习,旨在让读者从理论到实践全面了解这一领域。 数据结构是存储和组织数据的方式,它直接影响到算法的效率。常见的数据结构包括数组、链表、栈、队列、哈希表、树(二叉树、...
【cpp-算法学习笔记】是一份专注于C++编程语言的算法学习资源,旨在帮助开发者深入理解和掌握各种基础及高级算法。这份笔记包含了丰富的实例、解释和练习,是C/C++开发人员提升算法技能的理想教材。在C++这个强大的...
对于“计算机专业词汇词典微信小程序”,开发者可能利用了小程序的搜索功能让用户能快速定位到所需词汇,同时可能还实现了收藏、笔记等功能,便于用户记录和复习。 在设计上,此小程序可能采用了简洁明了的界面,以...
本学习笔记将深入探讨C语言描述的数据结构及其应用。 首先,我们要了解基本的数据结构类型。这些包括: 1. **数组**:是最基本的数据结构,它是一组相同类型的元素集合,通过索引访问。在C语言中,数组可以是一维...
《算法和数据结构学习笔记》是一份全面深入的IT学习资料,主要涵盖了计算机科学中至关重要的两个基础领域:算法和数据结构。这份压缩包文件包含了作者ljg_resource1的个人学习资源,旨在帮助读者理解并掌握这两部分...
### uC/OS-II 内核分析、移植与驱动程序开发学习笔记 #### uC/OS-II概述 uC/OS-II(通常简称为uCOS-II)是一款广泛应用于嵌入式系统的实时操作系统(RTOS)。它主要面向资源有限的微控制器(MCU),提供了任务调度...
《算法数据结构学习笔记-C语言》是一份专为新手设计的C语言学习资源,它将带你深入探索C语言的世界,并逐步掌握算法与数据结构的基本概念和应用。在C语言这个强大的编程工具下,理解并运用算法和数据结构是提升编程...