C在連結串列末尾增加結點,c 怎麼在連結串列中插入結點

2022-09-23 08:05:15 字數 5458 閱讀 6294

1樓:

你的:p=head;也就是說你的結點p是指向你的連結串列的頭結點的,但是頭結點的作用只是一個標誌結點,它之中沒有儲存資料的。也就是這樣的:

p->data==null;

p->next=x;//x為連結串列的第一個儲存資料的結點你把while迴圈改一下試試;

while(!(p->next))

這樣就可以了!

2樓:匿名使用者

實現在末尾增加結點

q=(node*)malloc(sizeof(node));

if(!q) exit(overflow);//分配空間不成功q->data=adata;

q->next=null;

p->next=q;}

c++怎麼在連結串列中插入結點

3樓:匿名使用者

一般你只會擁有一個連結串列的頭指標,要根據這個指標進行迴圈到達最後一個節點,然後在這個節點後面加入一個新的節點。下面是完整的**,包括連結串列的建立,增加節點

#include"iostream"

using namespace std;

typedef struct lnode //定義一個連結串列

*listnode;

在連結串列中填充資料,每次輸入一個數就會自動在表

插入資料的方法

void print(listnode l)

cout<

}int main()

4樓:匿名使用者

新定義一個結點指標,如p1,並複製,然後用原先的連結串列指標(如p)指向p1,p->next=p1;

5樓:匿名使用者

定義prt1,複製,prt->next=prt1

6樓:匿名使用者

後插法建立新的連結串列,然後根據表頭,表中,表尾之前插入節點#include

#include

#include

typedef struct node *list;

void creatlist(list *head,int n=0)}void list_insert(list l)else if (pos==list_length(l))else

q = (list)malloc(sizeof(list)); //建立一個新節點

q->next = p->next;

p->next = q;

q->info = p->info;

p->info = num;

outputlist(l);}}

c++ 單向連結串列 增加新節點

7樓:許秀英生淑

假設單連結串列類的名字是

mylist

struct

mylist

假設頭結點是head(mylist*

head),那麼將新增結點分三種情況:

1.在連結串列最前面新增結點,也即head的後面新增bool

add_node_before_head(mylist*h,mylist*

node_to_add)

return

false;

}2.在連結串列的target_node後新增結點:

bool

add_node_after_target(mylist*target_node,mylist*

node_to_add)

return

false;

}3.在連結串列的結點尾新增結點

bool

add_node_at_end(mylist*h,mylist*

node_to_add)

return

false;

這三個函式的呼叫方式如下:

head=create_list();//這個函式你自己寫吧mylist*

p_node=new

mylist;

p_node->data=20;

add_node_before_head(head,p_node);

add_node_after_target(head->next,p_node);

add_node_at_end(head,p_node);

希望可以幫到你~

8樓:閉桂花戚雀

增加由p

指向的結點,即將

*p插入到結點

*s之後,2條語句就夠了:

p->next

=s->next;

//使結點

*p的指標域指向

*s的下一個結點

s->next=p;

//使結點

*s的指標域指向*p

9樓:聲美媛沐嫻

連結串列是一種簡單的鏈式儲存的資料結構

請參照資料結構相關的書籍,這就是帶表頭的單向連結串列的基本操作。

建議看一下嚴蔚敏版的《資料結構》一書,上有詳細說明,此處就忽略了

c++ 單向連結串列 增加新節點

10樓:匿名使用者

單向連結串列的插入圖示:

---->[null](原連結串列)

head

---->[1]---->[null](插入後的連結串列)

head 1->next

圖7 空連結串列插入一個節點

結合原連結串列和插入後的連結串列,就很容易寫出相應的**。操作方法如下:

1、你要明白空連結串列head指向null就是head=null;

2、插入後head指向第1個節點,就是讓head=1,1->next=null,ok這樣就行了。

---->[1]---->[2]---->[3]...---->[n]---->[null](原連結串列)

head 1->next 2->next 3->next n->next

---->[1]---->[2]---->[x]---->[3]...---->[n]---->[null](插入後的連結串列)

head 1->next 2->next x->next 3->next n->next

圖8:有n個節點的連結串列,插入一個節點(這裡圖示插入第2個後面)

結合原連結串列和插入後的連結串列,就很容易寫出相應的**。操作方法如下:

1、你要明白原1->next就是節點2,2->next就是節點3;

2、插入後x指向第3個節點,2指向x,就是讓x->next=2->next,1->next=x。

*/struct node *insert(struct node *head, long num, struct node *node)

p1 = head;

while (p1->num != num && p1->next != null) /*p1指向的節點不是所要查詢的,並且它不是最後一個節點,繼續往下找*/

if (num == p1->num) /*找到了(結合圖示8理解)*/

else

return head;}

11樓:

語句很簡單

假設head 是連結串列的頭指標

假設 list 為節點型別

list *p,*ptemp

p=(list *)malloc(sizeof(list));

ptemp=head->next;

head->next=p;

p->next=ptemp;

free(p)

12樓:匿名使用者

假設單連結串列類的名字是 mylist

struct mylist

假設頭結點是head(mylist* head),那麼將新增結點分三種情況:

1.在連結串列最前面新增結點,也即head的後面新增

bool add_node_before_head(mylist* h,mylist* node_to_add)

return false;

}2.在連結串列的target_node後新增結點:

bool add_node_after_target(mylist* target_node,mylist* node_to_add)

return false;

}3.在連結串列的結點尾新增結點

bool add_node_at_end(mylist* h,mylist* node_to_add)

return false;

這三個函式的呼叫方式如下:

head=create_list();//這個函式你自己寫吧

mylist* p_node=new mylist;

p_node->data=20;

add_node_before_head(head,p_node);

add_node_after_target(head->next,p_node);

add_node_at_end(head,p_node);

希望可以幫到你~

13樓:匿名使用者

增加由 p 指向的結點,即將 *p 插入到結點 *s 之後,2條語句就夠了:

p->next = s->next; // 使結點 *p 的指標域指向 *s 的下一個結點

s->next = p; // 使結點 *s 的指標域指向 *p

c++ 用模板類建立一個單向連結串列 實現連結串列節點的增加、刪除、輸入 怎麼寫啊

14樓:匿名使用者

#include

using namespace std;

struct node

};class link

;link::link()

link::~link()

}void link::creat()

}void link::creat1(int num)bool link::search(int i)}bool link::insert(int i,int number)

else

}void link::output(node *f)cout<

}int main()

c++怎麼把一個連結串列連結到另一個連結串列的尾部(帶頭結點)???

15樓:匿名使用者

連結串列b追加到a的尾部,假設a,b都不為空

node *seektail = a;

while(seektail->next != null)seektail->next = b->next;

在c 中怎麼打出邏輯或運算子,在C 中怎麼打出邏輯或運算子?

邏輯編輯 邏輯運算子是根據表示式的值來返回真值或是假值。其實在c語言中沒有所謂的真值和假值,只是認為非0為真值,0為假值。符號 功能 邏輯與 邏輯或 邏輯非 當表示式進行 運算時,只要有一個為假,總的表示式就為假,只有當所有都為真時,總的式子才為真。當表示式進行 運算時,只要有一個為真,總的值就為真...

怎麼在matlab中執行c程式,怎麼在matlab中呼叫用c語言編寫的程式?

1.準備好c語言程式,清楚c語言的入口函式 2.編寫mexfunction函式。mexfunction函式為c語言與matlab語言的介面函式。呼叫例項在mylinedetect.c檔案中.在matlab中呼叫mex指令編譯相關檔案,將c語言編譯為mex檔案。3.編譯完成後,生成mylinedete...

在c語言中或在c中static是怎麼用的麻煩高人

靜態變數的特點是 僅在程式開始執行時被初始化一次,以後每一次被呼叫時儲存的的結果都可以在下一次被呼叫時使用。所以如果希望每一次呼叫函式得到的結果在下一次呼叫時使用,就可以用static變數來儲存這樣的資料。static應用主要有三個方面 如果定義的static變數為全域性變數 1 這個static變...