當前位置:成語大全網 - 書法字典 - 鏈表字典序列java

鏈表字典序列java

定義接口:

//Deque.java

包dsa//取決於您自己的程序位置。

公共接口隊列{

public int getSize();//返回隊列中元素的數量。

public boolean isEmpty();//判斷隊列是否為空。

公共對象first()引發ExceptionQueueEmpty//獲取第壹個元素(但不要刪除它)

公共對象last()引發ExceptionQueueEmpty//獲取最後壹個元素(但不要刪除它)

public void insertFirst(對象obj);//插入新元素作為第壹個元素

public void insert last(Object obj);//插入新元素作為最後壹個元素

公共對象removeFirst()引發ExceptionQueueEmpty//刪除第壹個元素

公共對象removeLast()引發ExceptionQueueEmpty//刪除最後壹個元素

public void遍歷();//遍歷

}

雙向鏈表的實現;

//Deque_DLNode.java

/*

*基於雙向鏈表的deque結構。

*/

包dsa

公共類Deque_DLNode實現Deque {

受保護的DLNode標頭;//指向頭節點(哨兵)

受保護的DLNode尾標;//指向尾部節點(哨兵)

受保護的int大小;//隊列中元素的數量

//構造函數

public Deque _ dl node(){

header = new dl node();

trailer = new dl node();

header.setNext(預告片);

trailer . set prev(header);

size = 0;

}

//返回隊列中元素的數量。

public int getSize()

{返回大小;}

//判斷隊列是否為空。

公共布爾值isEmpty()

{ return(0 = = size)?真:假;}

//獲取第壹個元素(但不要刪除它)

公共對象first()引發ExceptionQueueEmpty {

if(isEmpty())

throw new ExceptionQueueEmpty(“accident:deque為空“);

return header.getNext()。getElem();

}

//獲取最後壹個元素(但不要刪除它)

公共對象last()引發ExceptionQueueEmpty {

if(isEmpty())

throw new ExceptionQueueEmpty(“accident:deque為空“);

返回trailer.getPrev()。getElem();

}

//在隊列的前面插入壹個新節點。

公共void insertFirst(對象對象){

dlnodessecond = header . get next();

DLNodefirst = new dl node(obj,header,second);

second . setprev(first);

header . set next(first);

size++;

}

//在隊列的後端插入壹個新節點。

公共void insertLast(對象對象){

dlnodessecond = trailer . get prev();

DLNodefirst = new dl node(obj,second,trailer);

second . set next(first);

trailer . set prev(first);

size++;

}

//刪除第壹個節點

公共對象removeFirst()引發ExceptionQueueEmpty {

if(isEmpty())

throw new ExceptionQueueEmpty(“accident:deque為空“);

DLNodefirst = header . get next();

dlnodessecond = first . get next();

object obj = first . get elem();

header.setNext(秒);

second . setprev(header);

大小-;

return(obj);

}

//刪除最後壹個節點

公共對象removeLast()引發ExceptionQueueEmpty {

if(isEmpty())

throw new ExceptionQueueEmpty(“accident:deque為空“);

DLNodefirst = trailer . get prev();

dlnodessecond = first . get prev();

object obj = first . get elem();

trailer.setPrev(秒);

second.setNext(預告片);

大小-;

return(obj);

}

//遍歷

公共void遍歷(){

DLNodep = header . get next();

而(p!=拖車){

system . out . print(p . get elem()+““);

p = p . get next();

}

system . out . println();

}

}