迴圈單鏈表是單鏈表的另一種形式,其結構特點鍊錶中最後乙個結點的指標域不再是結束標記,而是指向整個鍊錶的第乙個結點,從而使鍊錶形成乙個環。和單鏈表相同,迴圈鍊錶也有帶頭結點結構和不帶頭結點結構兩種,帶頭結點的迴圈單鏈表實現插入和刪除操作較為方便。
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.在通過第乙個元素的資料...