單鏈表的頭插法(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;
}

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM