學習資料結構的第四天 雙向鍊錶

2021-10-07 04:52:32 字數 1560 閱讀 7473

建立輔助節點temp指向表頭,建立兩乙個節點temp2存放temp.next

遍歷鍊錶,若temp.next=null,遍歷到最後;temp.next.no>新節點.no,可以新增,並且退出迴圈;temp.next.no=新節點.no,表示已經存在

新增節點,如果是temp.next=null情況,直接在後面新增;如果是temp.next.no>新節點.no

temp2=temp.next;

temp.next=新節點;

新節點.next=temp2;

新節點.pre=temp;

temp2.pre=新節點;

刪除節點:

雙向鍊錶可以直接刪除

找到要刪除的節點為temp

temp.pre.next=temp.next

temp.next.pre=temp.pre;

**如下

class manageheronode2

public void sethead(heronode2 head)

public void add(heronode2 heronode2)

//指向下乙個節點

temp=temp.next;

}//迴圈結束之後的節點為最後乙個節點

//指向新的節點

temp.next=heronode2;

heronode2.pre=temp;

}//顯示鍊錶

public void list()

//遍歷鍊錶

//建立乙個輔助鍊錶,head.next不是null,說明至少有乙個資料

heronode2 temp=head.next;

while(true)

system.out.println(temp);

//將temp後移

temp=temp.next;

}}

//刪除節點

public void delete(int no)

heronode2 temp = head.next; // 輔助變數(指標)

boolean flag = false; // 標誌是否找到待刪除節點的

while (true)

if (temp.no == no)

temp = temp.next; // temp後移,遍歷

}// 判斷flag

if (flag)

} else

} //按照順序加入節點

public void addbyorder(heronode2 heronode)

if(temp.next.no>heronode.no) else if(temp.next.no==heronode.no)

temp=temp.next;

}if(flag) else else }}}

//每個heronode2就是乙個節點

class heronode2

@override

public string tostring()

}

資料結構第四天

0x00 棧 stack 棧是一種lifo 後進先出 的資料結構,有入棧 push 出棧 pop 兩種操作,且只能操作棧頂元素。在python中有多種可以實現棧的資料結構。1 list list是python內建的列表資料結構,它支援棧的特性,有入棧和出棧操作。只不過用list實現棧效能不是特別好。...

資料結構與演算法 第四天 線性表 鍊錶結構(二)

宣告 所有理論筆記 於 大話資料結構 線性表的鏈式儲存結構 1 線性表的順序儲存結構 定義 用一組任意的儲存單元儲存線性表的資料元素,這組儲存單元可以時連續的,也可以是不連續的。為了表示每個資料元素ai與其本身的資訊之外,還需儲存乙個指示其直接後繼的資訊 即直接後繼的儲存位置 我們把儲存資料元素資訊...

python基礎練習 資料結構第四天

python 中set與dict類似,也是一組key的集合,但不儲存value。由於key不能重複,所以,在set中,沒有重複的key。注意,key為不可變型別,即可雜湊的值。例子 112 num print type num num print type num 例子 113 basket set...