package com.atguigu.linkedlist;
public
class
singlelinkedlistdemo
}//定義singlelinkedlist管理英雄
class
singlelinkedlist
//如果沒有找到,就後移一位,繼續遍歷
temp = temp.next;
}//當退出while迴圈時,temp就指向了鍊錶的最後
//將最後這個節點的next 指向 新的節點
temp.next = heronode;
}//第二種方式在新增英雄時,根據排名將英雄插入到指定位置
//如果有這個排名,則新增失敗,並給出提示
public
void
addbyorder
(heronode heronode)
if(temp.next.no > heronode.no)
else
if(temp.next.no == heronode.no)
temp = temp.next;
//後移
}//判斷flag的值
if(flag)
else
}//修改節點的資訊,根據no編號來修改,即no編號不能改
//1.根據newheronode 的 no來修改即可
public
void
update
(heronode newheronode)
//找到需要修改的節點,根據no編號
//定義乙個輔助變數
heronode temp = head.next;
boolean flag =
false
;//表示是否找到該節點
while
(true)if
(temp.no == newheronode.no)
temp = temp.next;
}//根據flag判斷是否找到要修改的節點
if(flag)
else
}//刪除節點
不能動,需要乙個temp輔助節點,找到待刪除節點的前乙個節點
//2.說明在比較時,是temp.next.no和需要刪除的節點no比較
public
void
delete
(int no)
heronode temp = head.next;
boolean flag =
false
;//表示是否找到該節點
while
(true)if
(temp.next.no == no)
temp = temp.next;}if
(flag)
else
}//顯示鍊錶(遍歷)
public
void
list()
//因為頭結點不能動,因此需要乙個輔助變數來遍歷
//上面已經判斷了是否為空,如果head.next不為空,說明至少有乙個
heronode temp = head.next;
while
(true
)//輸出節點資訊
system.out.
println
(temp)
;//將temp後移,迴圈
temp = temp.next;}}
}//定義heronode ,每個heronode物件就是乙個節點
class
heronode
//重寫tostring方法
@override
public string tostring()
}
C語言 單鏈表的實現(簡單,有注釋)
每乙個注釋均為除錯語句 實現了鍊錶相關的操作 如有問題,請指出,謝謝!include include typedef struct nodelnode,linklist intinit 採用頭插法建立鍊錶,如果使用頭插法建立鍊錶,那麼輸出與輸入是倒序的 lnode creat else return...
判斷乙個單鏈表是否有環
一 判斷鍊錶是否存在環 設定兩個指標 fast,slow 初始值都指向頭,slow每次前進一步,fast每次前進二步,如果鍊錶存在環,則fast必定先進入 環,而slow後進入環,兩個指標必定相遇。當然,fast先行頭到尾部為null,則為無環鏈表 程式如下 bool i itsloop listn...
判斷一條單鏈表是否有環
這道題作為考察程式設計師的基本資料結構 鍊錶的操作和演算法是一道不錯的題,也是一道經常面試到的一道題,我從網上查了一下,這裡只寫一下演算法思想,實現由讀者自己去實踐下,下面轉入正題 已知頭結點,判斷一條單鏈表是否有環可用三種方法,演算法思想如下 1.追趕法。設兩個指標,乙個快指標 步長為2 乙個慢指...