迴圈單鏈表,雙向鍊錶,順序棧

2021-08-19 17:52:39 字數 2414 閱讀 8543

迴圈單鏈表是單鏈表的另一種形式,其結構特點鍊錶中最後乙個結點的指標域不再是結束標記,而是指向整個鍊錶的第乙個結點,從而使鍊錶形成乙個環。和單鏈表相同,迴圈鍊錶也有帶頭結點結構和不帶頭結點結構兩種,帶頭結點的迴圈單鏈表實現插入和刪除操作較為方便。

package practice;

class testclink

public entry(int data)

} private entry head = null;

public testclink()

//頭插法

public void inserthead (int val)

//尾插法

public void inserttile (int val)

entry.next = cur.next;

cur.next = entry;

} //刪除迴圈單鏈表中所有的val值

public void deteleval(int val)else

} }//鍊錶長度

public int getlength()

return count;

} //是否為空

public boolean isempty()

return true;

} //列印函式

public void show()

system.out.println(); }

}public class circle

t1.deteleval(1);

t1.show();

system.out.println("鍊錶長度為:"+t1.getlength());

}}

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。

package practice;

class doublelink

public entry(int data)

} private entry head = null;

public doublelink()

//show

public void show()

system.out.println();

} //頭插法

public void inserthead(int val)

} //尾插法

public void inserttail(int val)

cur.next = entry;

entry.prio = cur;

} //刪除值為val的所有結點

public void deleteentry(int val)

}cur = cur.next;

} }//鍊錶長度

public int getlength()

return len; }}

public class doublecircle

}

棧(stack)又名堆疊,它是一種運算受限的線性表。其限制是僅允許在表的一端進行插入和刪除運算。這一端被稱為棧頂,相對地,把另一端稱為棧底。向乙個棧插入新元素又稱作進棧、入棧或壓棧,它是把新元素放到棧頂元素的上面,使之成為新的棧頂元素;從乙個棧刪除元素又稱作出棧或退棧,它是把棧頂元素刪除掉,使其相鄰的元素成為新的棧頂元素。

package practice;

class stacka

public stacka(int size)

//棧是否為滿

public boolean isfull()

return false;

} //棧是否為空

public boolean isempty()

return false; }

//入棧

public boolean push(int val)

this.elem[this.top++] = val;

return true;

} //出棧

public void pop()

--this.top;

} //得到棧頂元素

public int gettop()

return this.elem[this.top-1];//不能進行--this.top;

} //show

public void show()

system.out.println(); }

}public class stack

s1.show();

s1.pop();

s1.show();

system.out.println(s1.gettop());

}}

單鏈表 迴圈鍊錶 雙向鍊錶的比較

查詢表頭結點 首元結點 查詢表尾結點 查詢結點 p的前趨節點 帶頭結點的單鏈表l l next 時間複雜度o 1 從 l next 依次向後遍歷 時間複雜度o n 通過 p next 無法找到其前驅 帶頭結點僅設頭指標l的迴圈單鏈表 l next 時間複雜度o 1 從 l next 依次向後遍歷 時...

鍊錶的基本操作 單鏈表 雙向鍊錶 迴圈鍊錶

本週第一次講座,學長給我們簡單的概述了資料結構和演算法,然後對鍊錶的一些操作進行了講解,下來之後,我把原來書上的一些 鍊錶的基本操作與鍊錶的逆置,排序等操作結合起來,整理出來 鍊錶是由結點構成的,關鍵是定義結點 c語言程式設計上兩大特例 鍊錶節點的定義 遞迴函式的定義。這兩個違反了先定義再使用。3....

資料結構總結 單鏈表 迴圈鍊錶 雙向鍊錶

總體構成 頭節點 不作資料的儲存,儲存鍊錶的公共資料資訊,如 長度 另外還有,還包括頭指標,指向第乙個資料節點 資料節點 顧名思義是存資料的,鍊錶最後的節點的指標域為null 節點的構成 資料域 儲存資料元素資訊 操作流程 遍歷的流程 1.通過頭節點的指標域得到第乙個元素 2.在通過第乙個元素的資料...