//单链表
public class Link {
private double value;
public int idata;
public Link next;
public Link(int id,double dd){
value=dd;
idata=id;
}
public void displayLink(){
System.out.println("("+idata+","+value+")");
}
}
public class LinkList {
private Link first;
public LinkList(){
first=null;
}
public void insertFirst(int id,double dd){
Link newl=new Link(id,dd);
newl.next=first;
first=newl;
}
public boolean isEmpty(){
return first==null;
}
public Link check(int id){
Link current=first;
while(current.idata!=id){
if(current.next==null) return null;
else current=current.next;
}
return current;
}
public void delete(int id){
Link current=first;
Link temp=null;
if(current.idata==id){
first=first.next;
}
else{
while(current.idata!=id){
if(current.next!=null){
temp=current;
current=current.next;}
else {
System.out.println("not find");
break;
}
}
temp.next=current.next;
}
}
public void deleteFirst(){
first=first.next;
}
public void displayAll(){
System.out.println("first->last:");
Link current=first;
while(current!=null){
current.displayLink();
current=current.next;
}
System.out.println();
}
}
public class LinkListApp {
public static void main(String[] args){
LinkList arr=new LinkList();
arr.insertFirst(22, 2.4);
arr.insertFirst(34, 9.8);
arr.insertFirst(12, 2.2);
arr.insertFirst(33, 3.3);
arr.delete(33);
arr.displayAll();
arr.check(12).displayLink();
// while(!arr.isEmpty()){
// arr.deleteFirst();
// arr.displayAll();
// }
}
}
//双端链表就是在单链表的第一个节点存在last指向最后的节点
public class Link {
private long value;
public Link next;
public Link(long n){
value=n;
}
public void displayLink(){
System.out.println(value);
}
public long getvalue(){
return value;
}
}
public class LinkList {
private Link first;
private Link last;
public LinkList(){
first=null;
last=null;
}
public void insertFirst(long data){
Link l=new Link(data);
if(isEmpty()){
first=l;
last=l;
}else l.next=first;
first=l;
}
public void insertLast(long data){
Link l=new Link(data);
if(isEmpty()){
first=l;
last=l;
}else{
last.next=l;
last=l;
}
}
public boolean isEmpty(){
return first==null;
}
public void display(){
System.out.println("first->last:");
Link current=first;
while(!isEmpty() && current!=null){
current.displayLink();
current=current.next;
}
}
public long deleteFirst(){
long temp=first.getvalue();
if(first==null){
System.out.println("Empty Link");
}
else if(first.next==null){
last=null;
first=null;
} else first=first.next;
return temp;
}
public long deleteLast(){
long temp=last.getvalue();
Link current=first;
if(first==null){
System.out.println("Empty Link");
}
else if(first.next==null){
last=null;
first=null;
}else{
while(!isEmpty()){
if(current.next==last) break;
current=current.next;
}
last=current;
last.next=null;
}
return temp;
}
}
public class LinkflApp {
public static void main(String[] args){
LinkList arr=new LinkList();
arr.insertFirst(22);
arr.insertFirst(44);
arr.insertFirst(66);
arr.insertLast(11);
//arr.deleteFirst();
arr.deleteLast();
arr.display();
}
}