鏈表c語言頭插法,c語言鏈表尾插

本文目錄一覽:

c語言數據結構,單鏈表中的頭插法求解釋

L這個頭結點是不存儲數據的,L-next L的下個結點才存儲數據,為實際的第一個結點

s-next=L-next 新插入的結點s放在第一個結點前面,變為新的第一個結點,L-next=s 這句讓L-next指向新的第一個結點

L-next改為L s-next=L ,L=s可以,這樣頭指針就是實際存儲數據的第一個結點

C語言 頭插法建立鏈表

#include

stdio.h

#include

stdlib.h

typedef

struct

_list

{

int

val;

struct

_list*

next;

}

*node,

list;

//

在pos位置之後插一個節點,pos為空則在頭部插入

node

insert(

node*

head,

node

pos,

int

val

)

{

node

tmp;

tmp

=

(

node

)malloc(

sizeof(

list

)

);

tmp-val

=

val;

tmp-next

=

pos

?

pos-next

:

*head;

return

(

pos

?

pos-next

:

*head

)

=

tmp;

}

//

從數組簡單構造一個鏈表

node

create(

int*

beg,

int*

end

)

{

node

head

=

null;

while

(

beg

!=

end

)

{

insert(

head,

null,

*beg++

);

//

在頭部插入

}

return

head;

}

//

遍歷輸出各個節點的值

void

print(

node

head

)

{

while

(

head

)

{

printf(

“%d

“,

head-val

);

head

=

head-next;

}

putchar(

‘\n’

);

}

int

main()

{

int

a[]

=

{

0,1,2,3,4,5,6,7,8,9

};

node

head;

head

=

create(

a,

a

+

10

);

print(

head

);

return

0;

}

單鏈表(C語言)頭插法的建立和輸出問題

//程序有多處改動,煩請將該程序另存,對比修改前後的差別

/*

1、頭部無數據,則在鏈表中,浪費頭結點;

2、頭部有數據,則在鏈表中,浪費最後一個結點;

3、頭部無數據結點思想:將新結點掛在頭結點後面,將新數據存放在新結點中;

4、頭部有數據結點思想:將新結點掛在頭結點後面,將新數據存放在頭結點中;

*/

#include stdio.h

#include stdlib.h

#define N 5

struct Node {

    int Data; /* 存儲結點數據 */

    struct Node * Next; /* 指向下一個結點的指針 */

};

typedef struct Node List; /* 定義單鏈表類型 */

void headinsert(List * L);

void display( List * L );

void headinsert2(List * L);

void display2( List * L );

int main()

{

    List *L1,*L2;

    L1=(List *)malloc(sizeof(struct Node));

L2=(List *)malloc(sizeof(struct Node));

printf(“頭部含數據:”);

headinsert(L1);

    display(L1);

printf(“\n”);

printf(“頭部含數據:”);

    headinsert2(L2);

    display2(L2);

printf(“\n”);

return 0;

}

void headinsert(List *L)//頭部無數據

{

int  i;

     List  * p;

   // scanf(“%d”, N);

    L-Next=NULL;

    for ( i=0; iN; i++ ) 

{

        p = (List *)malloc(sizeof(struct Node));

        p-Data=i+1; 

p-Next = NULL;

        L-Next = p;  //此處有改動,否則,後面一個結點插入到前一個結點的前面了

L = L-Next ;

    }

}

void display( List *L )

{

   List *p;

   p=L-Next; 

  while(p!=NULL)

  { 

    printf(“%d “,p-Data);

p=p-Next;

  }

}

void headinsert2(List *L)//頭部有數據

{

int  i;

     List  * p;

    //scanf(“%d”, N);

    L-Next = NULL;

    for ( i=0; iN; i++ ) 

{

        p = (List *)malloc(sizeof(struct Node));

        L-Next = p;

L-Data=i+2; //+2以示區別  

        L = L-Next; 

p -Next = NULL;

    }

}

void display2( List *L )

{

   List *p;

   p=L; 

  while(p-Next!=NULL)//此處改為p-Next!=NULL,否則會有一個垃圾數

  { 

    printf(“%d “,p-Data);

p=p-Next;

  }

}

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/154901.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-16 14:15
下一篇 2024-11-16 14:15

相關推薦

  • 利用Python實現兩個鏈表合併為一個有序鏈表

    對於開發工程師來說,實現兩個鏈表合併為一個有序鏈表是必須掌握的技能之一。Python語言在鏈表處理上非常便利,本文將從多個方面詳細闡述如何利用Python實現兩個鏈表合併為一個有序…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28

發表回復

登錄後才能評論