單鏈表的頭插法(C語言實現)
阿新 • • 發佈:2020-07-19
#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 , intn)//返回值為一個指標,指標型別為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; }