資料結構基礎總結(二)單鏈表

2021-10-03 10:26:35 字數 1567 閱讀 4948

(1)鍊錶的基本結構

鍊錶的各個節點不一定是連續存放的

鍊錶分為帶頭節點和不帶頭節點,根據需求決定

(2)單向鍊錶的增刪改查

//單向鍊錶的增刪改查

class node

@override

public string tostring() ';

}} class singlelist

temp=temp.next;

}temp.next=node;

}//顯示鍊錶

public void showlist()

node temp=head.next;

while(true)

system.out.println(temp);

temp=temp.next;}}

//按照no的大小來新增節點

//首先通過遍歷找到新新增節點的前乙個節點的位置(借助temp)

//新節點.next=該節點.next

//該節點.next=新節點

public void addbyno(node node)

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

temp=temp.next;

}if(!flag)

}//單鏈表節點的修改(根據編號修改節點的資訊)

public void update(node node,int num)

node temp=head.next;

boolean flag=false;//是否找到該節點

while (true)

if(temp.no==num)

temp=temp.next;

}if(flag==true)else

}}

(3) 獲取單鏈表節點的個數
public int getnum(node head)

node temp=head.next;

int num=0;

while(true)

num++;

temp=temp.next;

}return num;

}

(4) 查詢單鏈表的倒數第k個節點
public node findknode(node head,int k)

int size=getnum(head);

if(k<=0||k>size)

node temp=head.next;

for (int i = 0; i < size - k; i++)

return temp;

}

(5) 反轉鍊錶
public void reverse(node head)

node temp=head.next;

node next=null;//指向當前節點的下乙個節點

node rhead = new node(0, "");

while(true)

head.next=rhead.next;

}

資料結構 單鏈表 基礎

在實現單鏈表的基本功能後 單鏈表的幾個基本問題 1.比較順序表和煉表的優缺點,說說它們分別在什麼場景下使用?順序表 物理位置相鄰 優點 在一段記憶體中用陣列連續存放,所以方便隨機查詢元素。缺點 動態開闢,容易造成記憶體浪費,需要乙個元素,開闢過多。前面新增元素時,要逐個挪動後面的每個元素,較麻煩。場...

資料結構基礎 單鏈表

關於單鏈表的一些基本操作,以下為基本思路 首先看一張直觀圖 鍊錶的結構體定義如下 為簡便,這裡的elemtype採用int 單鏈表 typedef struct lnode linklist 接下來肯定就是建立鍊錶,而目前建立單鏈表分為兩種方式,分別是 頭插法 與 尾插法 首先看圖示 清楚明白 我們...

資料結構(二) 單鏈表

單鏈表是一種鏈式訪問的資料結構,用一組位址任意的儲存單元存放線性表中的資料元素。鏈式儲存不僅需要儲存元素本身,還要儲存乙個指向其後繼元素的位址,這種儲存結構也被稱為 node,儲存資料的叫資料域,儲存位址的叫指標域。鏈式儲存結構需要存放資料的資料域和存放後繼節點位址的指標域,所以在定義單鏈表時需要如...