嘗試寫了一下鍊錶的增刪改查,感覺難度不是很大,但一次寫出沒有bug的**還需要努力。
萌新水平有限,**優化可以改進或者寫錯了歡迎指出。
/// /// 建立鍊錶
///
///
///
node nodelistcreate(int array)
//下個節點
node nextnode=null;
//從後向前建立
for (int i = array.length - 1; i >= 0; i--)
return nextnode;
}/// /// 列印鍊錶
///
///
void shownodelist(node head)
node n = head;
while (n.next!=null)
//尾節點單獨列印
debug.log(n.value);
}/// /// 刪除鍊錶 按值刪除鍊錶
///
///
///
///
node deletenode(int value,node head)
node n = head;
//刪除的是頭部
if (n.value==value)
return n.next;
}while (n.next!=null)
else
return head;}}
debug.logerror("not found");
return null;
}/// /// 按下標新增鍊錶
///
///
///
///
///
node insertnode(node head,int index,int value)
if (index<0)
node n = new node();
n.value = value;
if (index==0)
node temp = head;
//也是以temp.next做判斷 留temp 插入值n temp.next重新連線
for (int i = 0; i < index-1; i++)
//移動準備插入的位置
temp = temp.next;
}//下一項不是尾節點
if (temp.next != null)
//temp是尾節點
else
return head;
}/// /// 按下標修改鍊錶節點
///
///
///
///
///
node updatenode(node head, int index, int value)
node temp = head;
for (int i = 0; i < index; i++)
}temp.value = value;
return head;
}class node
資料結構與演算法2 鍊錶
1.鍊錶 鍊錶通常有兩個域 2.單鏈表的表示方式 3.鍊錶的儲存結構 4.鍊錶的分類 迴圈鍊錶 鍊錶首尾相接構成乙個環狀結構 雙向鍊錶 單鏈表中增加乙個指向前驅的指標。5.單鏈表的基本運算與實現示例 include stdio.h include malloc.h typedef struct da...
萌新的資料結構與演算法3 A 演算法
astar是一種深度優先啟發式尋路演算法,廣泛運用在遊戲領域。提起astar不得不提一下迪傑特斯拉演算法,它是一種廣度優先啟發式尋路演算法,俗稱閹割版的astar。因為大部分情況下astar的效率都比迪傑特斯拉高,我們只需要稍作了解就可以。astar的原理,有一篇部落格寫的很詳細,萌新推薦一下 pu...
資料結構與演算法 基礎資料結構 鍊錶學習
插入在中間,需要把前面的遍歷找到前一位的引用 listnode newnode newlistnode data newnode.next cur.next 新插入的節點 指向 後面的 保證和後面沒有斷開鏈結 cur.next newnode public void deletehead publi...