1. 程式人生 > 實用技巧 >單鏈表的頭插法(C語言實現)

單鏈表的頭插法(C語言實現)

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>


typedef struct LNode{
    int data;
    struct LNode* next; //next是一個指向結構體型別的指標, LNode* 是一個指標資料型別類似int,float那樣的資料型別
}LNode,*LinkList;       //建立了2個LNode結構體變數,一個是LNode,另一個是*LinkList。

LinkList List_HeadInsert(LinkList &L , int
n)//返回值為一個指標,指標型別為LinkList,這裡的&是引用符號,不是取地址符號 { int i,x; LNode *s; L = (LinkList)malloc(sizeof(LNode));//malloc函式返回值是一個指標(地址),大小為資料型別大小 L->next = NULL; for(i=0;i<n;i++) { s = (LinkList)malloc(sizeof(LNode)); printf("請輸入第%d個數字:",i+1); scanf("%d",&x); s
->data = x; s->next = L->next; L->next = s; } return L; } int main() { int n; LNode* node; LinkList L;//上面函式的返回值是LinkList型別,那麼建立變數時也應該建立一個LinkList型別的變數,不能用LNode建立 printf("請輸入節點個數n:"); scanf("%d",&n); List_HeadInsert(L,n); node = L->next; printf(
"按照單鏈表的順序輸出連結串列元素:\n"); while(node != NULL)//遍歷連結串列不多說 { printf("%d ",node->data); node = node->next; } printf("\n"); return 0; }