(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,儲存資料的叫資料域,儲存位址的叫指標域。鏈式儲存結構需要存放資料的資料域和存放後繼節點位址的指標域,所以在定義單鏈表時需要如...