近日研究线性表的特性,做了相关的顺序表和链表的类

来源:互联网 发布:photoshop软件mac版本 编辑:程序博客网 时间:2024/06/06 19:08

 

/**
 * 顺序表 NormailList类
 * 
@author gzBlackDuck
 
*/

public class NormailList {
    
private int[] myList;//存储顺序表
    
    
public NormailList(int[] list)
    
{
        
this.myList = list;
    }

    
    
/***
     * 查看顺序表的长度
     
*/

    
public int getMyListLength()
    
{
        
return this.myList.length;
    }

    
/**
     * 打印具体顺序表值
     * 查询
     
*/

    
public void printMyList()
    
{
        
for(int one : this.myList)
        
{
            System.out.printf(one
+" ");
        }

        System.out.printf(
" ");
    }

    
/**
     * 获取指定顺序表中的值
     * 
@param index
     * 
@return
     
*/

    
public int getOneValue(int index)
    
{
        
return this.myList[index];
    }

    
/**
     * 修改
     * 
@param index
     * 
@param value
     
*/

    
public void setOneValue(int index,int value)
    
{
        
this.myList[index] = value;
    }

    
/**
     * 查找顺序表中的域
     * 
@param value 查询域中的值
     * 
@return 索引值
     
*/

    
public int seachValue(int value)
    
{
        
int index = -1;
        
for(int i= 0;i<this.myList.length;i++)
        
{
            
if(this.myList[i]==value)
            
{
                index 
= i;
                
break;
            }

        }

        
return index;
    }

    
/**
     * 插入新的域
     * 
@param index 插入点
     * 
@param value 插入值
     
*/

    
public void insertOne(int index,int value)
    
{
        
int length = this.myList.length;
        
int[] newList = new int[length+1] ;
        
int i=0;
        
for(;i<index-1;i++)
            newList[i] 
= this.myList[i];
        
        newList[i] 
= value;
        
        
for(;i<length;i++)
            newList[i
+1= this.myList[i];
        
            
this.myList = newList;
        
    }

    
/**
     * 删除其中一个域
     * 
@param index
     
*/

    
public void deleteOne(int index)
    
{
        
int length = this.myList.length;
        
int[] newList = new int[length-1] ;
        
for(int i =index;i<length-1;i++)
        
{
            
this.myList[i] = this.myList[i+1];
        }

        
for(int i =0;i<length-1;i++)
        
{
            newList[i] 
= this.myList[i];
        }

        
this.myList = newList;
        
    }

    
    
}

/**
 * 链表 LinkList.java
 * 
@author gzBlackDuck
 *
 
*/

public class LinkList {
    
    
private LinkBean lb;
    
public LinkList()
    
{
        lb
=new LinkBean(0,null);//创建一个起始点(自用)
    }

    
public void AddAlink(int value)
    
{
        LinkBean newLink 
= new LinkBean(value,null);
        LinkBean lastLink 
= this.SelLastLink();
        lastLink.setAlinkAddress(newLink);
            
    }

    
    
public void DelAlink(int index)
    
{
        LinkBean currentLink 
= null;
        LinkBean nextLink 
= lb;
        
if(nextLink.getAlinkAddress()!=null)
        
{
            
for(int i=0;i<=index;i++)
            
{
                currentLink 
= nextLink;
                nextLink 
= currentLink.getAlinkAddress();
            }

            
            currentLink.setAlinkAddress(nextLink.getAlinkAddress());
        }

    }

    
    
public LinkBean SelLastLink()
    
{
        LinkBean lastLink 
= lb;
        
while(true)
        
{
            
if(lastLink.getAlinkAddress() != null)
            lastLink 
= lastLink.getAlinkAddress();
            
else
                
break;
        }

        
        
return lastLink;
    }

    
    
public void printLinkList()
    
{
        LinkBean lastLink 
= lb;
        
while(lastLink.getAlinkAddress() != null)
        
{
            lastLink 
= lastLink.getAlinkAddress();
            System.out.printf(lastLink.getValue()
+" ");
        }

    }

}


//--------------------------------------
/**
 * 链表域
 
*/

class LinkBean {
    
private int value;
    
private LinkBean alinkAddress;//架设为地址
    
    
public LinkBean(int value, LinkBean alinkAddress)
    
{
        
this.setAlinkAddress(alinkAddress);
        
this.setValue(value);
    }


    
public int getValue() {
        
return value;
    }


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


    
public LinkBean getAlinkAddress() {
        
return alinkAddress;
    }


    
public void setAlinkAddress(LinkBean alinkAddress) {
        
this.alinkAddress = alinkAddress;
    }

}

 

赠予入口点

 


/**
 * 程序入口点 Program.java
 * 
@author gzBlackDuck
 *
 
*/


public class Program {
    
public static void main(String[] args)
    
{
        NormailList nList 
= new NormailList(new int[]{1,2,3,4,5});
        nList.printMyList();
//看顺序表的长度
        nList.insertOne(19);
        nList.printMyList();
//看顺序表的长度
        nList.deleteOne(2);
        nList.printMyList();
//看顺序表的长度
        
        
//----------链表
        
        LinkList links 
= new LinkList();
        links.AddAlink(
10);
        links.AddAlink(
20);
        links.AddAlink(
9);
        links.AddAlink(
2);
        links.AddAlink(
12);
        links.printLinkList();
        links.DelAlink(
1);
        System.out.print(
" ");
        links.printLinkList();
    }

}

解释就不多说勒,大家都知道
原创粉丝点击