萌新的資料結構與演算法2 鍊錶基礎

2021-09-17 08:45:09 字數 1604 閱讀 7939

嘗試寫了一下鍊錶的增刪改查,感覺難度不是很大,但一次寫出沒有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...