建立輔助節點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...