C語言基礎(chǔ)啦啦啦(鏈表)

C語言基礎(chǔ)

鏈表

//
//  main.c
//  15-鏈表思想
//
//  Created by ccj on 2016/10/21.
//  Copyright ? 2016年 ccj. All rights reserved.
//

#include <stdio.h>

typedef struct Property
{
    int fridge;
    int washMachine;

}Property;

typedef  struct Home
{
    Property property;//財產(chǎn)
    struct Home *next;//下一家的地址
}Home;

int main()
{
    
    Home zaiHome,jiangHome,worldHome;
    ahome.property.fridge=0;
    ahome.property.washMachine=0;
    ahome.next=&jiangHome;
    
    bhome.property.fridge=1;
    bhome.property.washMachine=0;
    bhome.next=&worldHome;
    
    
    chome.property.fridge=1;
    chome.property.washMachine=1;
    chome.next=NULL;
    Home *p=&ahome;
    printf("ahome.fridge=%d,ahome.washMachine=%d\n",p->fridge,p->washMachine);
    p=p->address;
    printf("bhome.fridge=%d,bhome.washMachine=%d\n",p->fridge,p->washMashine);
    p=p->address;
    printf("chome.fridge=%d,chome.washMachine=%d\n",p->fridge,p->washMashine);
    Home *p;
    for (p=&zaiHome; p!=NULL; p=p->next)
    {
        printf("fridge=%d,washMachine=%d\n",p->property.fridge,p->property.washMachine);
    }

    
    return 0;
}

    
    Home *p=&ahome;
    printf("ahome.fridge=%d,ahome.washMachine=%d\n",p->fridge,p->washMachine);
    p=p->address;
    printf("bhome.fridge=%d,bhome.washMachine=%d\n",p->fridge,p->washMashine);
    p=p->address;
    printf("chome.fridge=%d,chome.washMachine=%d\n",p->fridge,p->washMashine);
    /*
    Home *p;
    for(p=&ahome;p!=NULL;p=p->address)
    {
        
         printf("home.fridge=%d,home.washMachine=%d\n",p->fridge,p->washMashine);
    }
    */
}
  • malloc將堆區(qū)分出來一塊空間
int *test()
{
    int *p=(int *)malloc(sizeof(int));
    return p;
}
int main()
{
    int *p=test();
    *p=6;
    //釋放p指向堆區(qū)的空間。
    free(p);
}

  • 用堆區(qū)劃分上程序
typedef struct Property
{
    int fridge;
    int washMachine;

}Property;

typedef  struct Home
{
    Property property;
    struct Home *next;
}Home;
int main()
{
   // Home *head=(Home *)malloc(sizeof(Home));
    //head所對應(yīng)的空間地址域部分只能存儲鏈表當(dāng)中第一個有實際數(shù)據(jù)的節(jié)點地址,
    Home *pa=(Home *)malloc(sizeof(Home));
    Home *pb=(Home *)malloc(sizeof(Home));
    Home *pc=(Home *)malloc(sizeof(Home));
    
//    head->next=pa;
    pa->property.fridge=0;
    pa->property.washMachine=0;
    pa->next=pb;
    
    pb->property.fridge=0;
    pb->property.washMachine=0;
    pb->next=pc;
     
    pc->property.fridge=0;
    pc->property.washMachine=0;
    pc->next=NuLL;

    Home *p;
    for(p=&ahome;p!=NULL;p=p->address)
    {
        
         printf("home.fridge=%d,home.washMachine=%d\n",p->property.fridge,p->property.washMashine);
    }
/*  Home *p;
    for(p=head->next;p!=NULL;p=p->next)
    {
        
         printf("home.fridge=%d,home.washMachine=%d\n",p->property.fridge,p->property.washMashine);
    }*/
}

鏈表初級思想。再回首,真。。。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容