单向链表的编写
来源:互联网 发布:生死狙击透视源码 编辑:程序博客网 时间:2024/06/03 21:31
package cn.shangji.s3;
public class Link{
class Node {
public String data;
private Node next;
public Node(String data) {
this.data = data;
}
public void add(Node newNode){
if(this.next==null){
this.next=newNode;
}else{
this.next.add(newNode);
}
}
public void NodeDisplay(){
System.out.println ("{"+this.data+"}");
if(this.next!=null){
this.next.NodeDisplay();
}
}
public boolean findNode(String data){
if(data.equals(this.data)){
return true;
}else{
if(this.next!=null){
return this.next.findNode(data);
} else{
return false;
}
}
}
public void delete(Node previous,String data){
if(data.equals(this.data)){
previous.next=this.next;
}else{
if(this.next!=null){
this.next.delete(this,data);
}
}
}
}
private Node first;
public void addNode(String node){
Node newNode=new Node(node);
if (this.first==null){
this.first=newNode;
}else{
this.first.add(newNode);
}
}
public void displayLink (){
if(this.first!=null){
this.first.NodeDisplay();
}
}
public boolean isEmpty(String name){
return this.first.findNode(name);
}
public void deleteNode(String data){
if(this.isEmpty(data)){
if(this.first.data.equals(data)){
this.first=this.first.next;
}else{
this.first.next.delete(first,data);
}
}
}
public static void main (String[] args) {
Link l=new Link();
l.addNode("1");
l.addNode("2");
l.addNode("3");
l.addNode("4");
l.addNode("5");
l.addNode("6");
l.addNode("7");
l.addNode("8");
System.out.println("============删除之前==============");
l.displayLink ();
l.deleteNode("1");
l.deleteNode("7");
l.deleteNode("8");
System.out.println("n============删除之后==============");
l.displayLink ();
System.out.println("查询节点:"+l.isEmpty("4"));
}
}
/*
public Link () {
this.first=null;
}
public void insertHeadNode(int data){ }
*/
public class Link{
class Node {
public String data;
private Node next;
public Node(String data) {
this.data = data;
}
public void add(Node newNode){
if(this.next==null){
this.next=newNode;
}else{
this.next.add(newNode);
}
}
public void NodeDisplay(){
System.out.println ("{"+this.data+"}");
if(this.next!=null){
this.next.NodeDisplay();
}
}
public boolean findNode(String data){
if(data.equals(this.data)){
return true;
}else{
if(this.next!=null){
return this.next.findNode(data);
} else{
return false;
}
}
}
public void delete(Node previous,String data){
if(data.equals(this.data)){
previous.next=this.next;
}else{
if(this.next!=null){
this.next.delete(this,data);
}
}
}
}
private Node first;
public void addNode(String node){
Node newNode=new Node(node);
if (this.first==null){
this.first=newNode;
}else{
this.first.add(newNode);
}
}
public void displayLink (){
if(this.first!=null){
this.first.NodeDisplay();
}
}
public boolean isEmpty(String name){
return this.first.findNode(name);
}
public void deleteNode(String data){
if(this.isEmpty(data)){
if(this.first.data.equals(data)){
this.first=this.first.next;
}else{
this.first.next.delete(first,data);
}
}
}
public static void main (String[] args) {
Link l=new Link();
l.addNode("1");
l.addNode("2");
l.addNode("3");
l.addNode("4");
l.addNode("5");
l.addNode("6");
l.addNode("7");
l.addNode("8");
System.out.println("============删除之前==============");
l.displayLink ();
l.deleteNode("1");
l.deleteNode("7");
l.deleteNode("8");
System.out.println("n============删除之后==============");
l.displayLink ();
System.out.println("查询节点:"+l.isEmpty("4"));
}
}
/*
public Link () {
this.first=null;
}
public void insertHeadNode(int data){ }
*/
- 单向链表的编写
- 编写单向链表
- 单向链表编写代码
- 如何编写自己单向链表(c语言)
- 单向链表的几道题
- 单向链表的几道题
- 单向链表的几道题
- 单向链表的反转
- 单向链表的反转
- 单向链表的操作
- 单向链表的排序
- 单向链表的操作
- 单向链表的反转
- 单向链表的实现
- 单向链表的常见问题
- 单向链表的反转
- 单向链表的反转
- 单向链表的实现
- MAC下快速查看图片的尺寸大小,尺寸
- Android下通过root实现对system_server中binder的ioctl调用拦截
- Linux服务器上进行目录的提示
- RSSI 摘录合集
- dmp文件的压缩比例
- 单向链表的编写
- 苹果面试逻辑题
- Windows编程之时间
- 随笔->好好修炼
- TWebBrowser滚动条的显示问题探讨。
- 设置UIButton中title的位置
- C语言中运算符优先级表
- Linux 死机了怎么办
- Android zygote与进程创建(一)