c語言鍊表 鍊表裡p next是怎麼指向下結點的呢,它是怎麼得到下結點的位址求詳細

時間 2021-05-05 16:22:30

1樓:希伯來爵

struct node n1,n2;//定義兩個節點n1.next=&n2;//n1和n2連線起來n2.next=null;//n2的下個節點為空struct node n3;//增加乙個節點n2.

next=&n3;//n2和n3連線起來n3.next=null;//n3的下個節點為空這樣你明白了嗎

p->next其實就是(*p).next

------------------------------------

用指標表達

struct node *n1=( struct node *)malloc(sizeof( struct node));//新增乙個節點

struct node *n2=( struct node *)malloc(sizeof( struct node));//再新增乙個節點

n1->next=n2;//連線兩個節點

n2->next=null;//n2的下個節點為空

2樓:

這裡有我用c++寫的鍊表的一些列操作,如果你能看懂的話,你問的問題就能迎刃而解了。。。。。。。。。。。。。

3樓:

是組建鍊表時候得到的,你是逆著來想這問題了吧 ~~以下是例子

struct s

a,b,c;

struct s *head;

a.num=10000;a.score=99;

b.num=10010;b.score=0;

c.num=10086;c.score=59;

4樓:卒子的瘋狂

p->next->next

&(p->next)

c語言的資料結構中,next是如何指向下乙個元素的?

5樓:娛樂小八卦啊

在函式中不是有q->next=p;這時q是插入前的尾節點。那樣q的的下乙個(新插入的節點)就由q指向節點裡的字段next指向了。

單鏈表的插入只需讓s->next 和p->next的指標做一點改變即可。

s->next = p->next;

p->next = s;

單鏈表第i個資料插入結點的演算法思路是:

1、宣告乙個指標p指向鍊表的第乙個結點,初始化j從1開始;

2、當j< i 時,遍歷鍊表,讓p的指標向後移動,不斷指向下一結點,j累加1;

3、若到鍊表末尾p為空,說明第i個元素不存在;

4、否則查詢成功,在系統中生成乙個空結點s;

5、將資料元素e賦值給s->data;

6、單鏈表的插入標準語句 s->next = p->next; p->next = s;

7、返回成功。

擴充套件資料

單鏈表的建立有頭插法、尾插法兩種方法。

1、頭插法

單鏈表是使用者不斷申請儲存單元和改變鏈結關係而得到的一種特殊資料結構,將鍊表的左邊稱為鏈頭,右邊稱為鏈尾。頭插法建單鏈表是將鍊表右端看成固定的,鍊表不斷向左延伸而得到的。頭插法最先得到的是尾結點。

鍊表建立的過程是申請空間、得到資料、建立鏈結的迴圈處理過程。

2、尾插法

若將鍊表的左端固定,鍊表不斷向右延伸,這種建立鍊表的方法稱為尾插法。尾插法建立鍊表時,頭指標固定不動,故必須設立乙個搜尋指標,向鍊表右邊延伸,則整個演算法中應設立三個鍊表指標,即頭指標head、搜尋指標p2、申請單元指標pl。尾插法最先得到的是頭結點。

6樓:用梅飛詞

棧是自定義的,看你的棧是怎樣定義的,如果你的棧頂指標指向的是下乙個可用的棧空間,那你取棧頂元素的時候就要*(s.top-1);而如果你的棧頂指標指向的是當前可能的空間,取頂就要*(s.top)--

7樓:匿名使用者

是一樣的和命名沒關係,和q->next =p;賦值有關,指標的指向,只是為了更好的理解

c語言鍊表中q->next=p;表示什麼意思?

8樓:南瓜蘋果

q->next = p; 表示將節點p加入到節點q之後。

意思:使當前指標指向鍊表的下乙個結點。

一般作用在資料結構中的單鏈表裡由應用,語句中的p一般指向乙個結構體型別的資料,此型別的資料通常表示節點;結構體裡存放的一些資料和記錄下乙個節點位址的指標變數next;這個next就好比鏈條一樣,連線著乙個個節點。

->是乙個整體,它是用於指向結構體、c++中的class等含有子資料的指標用來取子資料。換種說法,如果在c語言中定義了乙個結構體,然後申明乙個指標指向這個結構體,那麼要用指標取出結構體中的資料,就要用到「->」.

擴充套件資料鍊表的特點:

1、n個節點離散分配

2、每乙個節點之間通過指標相連

3、每乙個節點有乙個前驅節點和乙個後繼節點4、首節點沒有前驅節點,尾節點沒有後繼節點建立鍊表前須知

首節點:存放第乙個有效資料的節點。

頭節點:在單鏈表的第乙個結點之前附設乙個結點,它沒有直接前驅,稱之為頭結點,頭結點的資料域可以不儲存任何資訊,指標域指向第乙個節點(首節點)的位址。頭結點的作用是使所有鍊表(包括空表)的頭指標非空。

頭指標:指向頭節點的指標。

尾節點:存放最後乙個有效資料的節點。

尾指標:指向尾節點的指標。

9樓:匿名使用者

q-.next=p;

把p的位址賦給q的下乙個位址

while (q)

把q的下乙個位址賦給r;

p的位址賦給q的下乙個位址;

q的位址賦給p的位址

r的位址賦給q;

直到q->next的位址為0就結束迴圈

其實鍊表要自己多畫畫就直到怎麼回事了

10樓:天雲一號

q->next = p;  表示將節點p加入到節點q之後。

具體的意思可以參考如下的圖形表示:

節點q----->節點p

一般鍊表的節點定義為:

struct node;

11樓:天地一孤鴻

把p(是指標,表示位址)賦給q的位址域。

12樓:匿名使用者

前面沒有說明r ,p,q是指向什麼的指標啊,後面就難猜了

c語言連結串列排序,C語言連結串列排序

問明 include stdafx h include stdlib h 建立一個節點,data為value,指向null node create intvalue node head node malloc sizeof node head data value head next null re...

如何c語言建立單鏈表,如何C語言建立單鏈表

小甜甜愛亮亮 c語言建立單鏈表如下 include stdio.h include stdlib.h include malloc.h include iostream.h typedef struct node int data node next node list void create in...

C語言連結串列與結構體,c語言結構體與連結串列

北風微風 include include define null 0 define len sizeof struct student struct student int n struct student creat void if n 0 head null p2 next null free ...