本文目錄一覽:
- 1、數據結構高手來啊~~~謝謝
- 2、什麼是單鏈表,儲存上有哪些特點?
- 3、什麼是單鏈表
- 4、數據結構單鏈表?
數據結構高手來啊~~~謝謝
分太少了
這個是必會的,我這個你應該作為參考。。
#include iostream
using namespace std;
typedef struct node
{
int data;
node *next;
}node,*list;
list CreateLinklist()
{
list head=NULL,tail=NULL,temp=NULL;
int n,data;
cinn;
head=new node;
cindata;
head-data=data;
head-next=NULL;
tail=head;
for(int i=0;in-1;i++)
{ temp=new node;
cindata;
temp-data=data;
temp-next=NULL;
tail-next=temp;
tail=temp;
}
tail-next=NULL;
return head;
}
void OutputLinklist(list head)
{
list temp;
temp=head;
while(temp)
{
couttemp-data” “;
temp=temp-next;
}
coutendl;
}
list ContLinklist(list a1,list a2)
{
list tail,a3;
tail=a1;
a3=a1;
while(tail-next)
{
tail=tail-next;
}
tail-next=a2;
return a3;
}
void main()
{
list a1,a2,a3;
a1=CreateLinklist();
a2=CreateLinklist();
a3=ContLinklist(a1,a2);
OutputLinklist(a3);
}
什麼是單鏈表,儲存上有哪些特點?
單鏈表是一種鏈式存取的數據結構,用一組地址任意的存儲單元存放線性表中的數據元素。鏈表中的數據是以結點來表示的,每個結點的構成:元素(數據元素的映象) + 指針(指示後繼元素存儲位置),元素就是存儲數據的存儲單元,指針就是連接每個結點的地址數據。
鏈接存儲方法
鏈接方式存儲的線性表簡稱為鏈表(Linked List)。
鏈表的具體存儲表示為:
① 用一組任意的存儲單元來存放線性表的結點(這組存儲單元既可以是連續的,也可以是不連續的)
② 鏈表中結點的邏輯次序和物理次序不一定相同。為了能正確表示結點間的邏輯關係,在存儲每個結點值的同時,還必須存儲指示其後繼結點的地址(或位置)信息(稱為指針(pointer)或鏈(link))
鏈式存儲是最常用的存儲方式之一,它不僅可用來表示線性表,而且可用來表示各種非線性的數據結構。
什麼是單鏈表
單鏈表
單鏈表是一種鏈式存取的數據結構,用一組地址任意的存儲單元存放線性表中的數據元素。
鏈表中的數據是以節點來表示的,每個節點的構成:元素(數據元素的映象) + 指針(指示後繼元素存儲位置),元素就是存儲數據的存儲單元,指針就是連接每個節點的地址數據。
以“結點的序列”表示線性表稱作線性鏈表(單鏈表)
單鏈表是鏈式存取的結構,為找第 i 個數據元素,必須先找到第 i-1 個數據元素。
因此,查找第 i 個數據元素的基本操作為:移動指針,比較 j 和 i
數據結構單鏈表?
舉一個現實中的例子你就明白了:
假設有apcde5個小朋友依次手拉着手組成了一個鏈表a-p-c-d-e,現在來了一個小朋友q,老師要他插到p的後面,如果他只拉着p的手,而不拉着c的手,那鏈表是不是就斷了,變成了兩個鏈表a-p-q和c-d-e。
所以,這裡的q-next=p-next;的意思就相當於讓q的一隻手先拉着c的一隻手(此時的c一隻手拉着p和q,另一隻手拉着d),而p-next=q;的意思就相當於讓p鬆開與c的手轉而拉着q的另一隻手,這樣就形成了一個完整的鏈表。
當然,在現實中q和p、c中的誰先拉手是不重要的,但對於鏈表,q必須先和c拉手,因為只有通過p-next才能找到c,如果q先和p拉手(即執行p-next=q;),那鏈表就斷了,再也沒有辦法找到c了(因為現在的p-next是q而不是c了,也沒有其它指針指向c)。
總之記住,在鏈表中插入一個結點時順序很重要,是先連後斷。
比如,要將x插在p和q之間,必須先令x和q連接起來,然後斷開原來的p和q之間的連接,轉而令p和x建立連接。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/243363.html