靜態鏈表

靜態鏈表是早期實現鏈表的數組形式鏈表,主要是向內存申請一段連續的空間,建立一個固定長度的結構體數組。利用遊標next來找到下一元素在數組的位置狀況。詳細原理看下圖!
靜態鏈表靜態鏈表
代碼以下:ios

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 10//定義結構體數組的最大長度 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

//定義靜態鏈表
/*
typedef struct {
    int data;//數據 
    int next;//指向數組下標的下一個位置 
}SLinkList[MaxSize]; 
*/

//定義靜態鏈表 
struct Node{
    int data;//數據 
    int next;//指向數組下標的下一個位置 
};

typedef struct Node SLinkList;

//建立靜態鏈表 
void InitSList(SLinkList *L){
    for(int i=0;i<MaxSize;i++){
        L[i].data = -1;
        L[i].next = -2;
    }
}

//輸出靜態鏈表 
void p(SLinkList *L){
    for(int i=0;i<MaxSize;i++){
        printf("%d\t",L[i].data);
    }
}

int main(int argc, char** argv) {
    SLinkList L[MaxSize];//表示最大長度爲MaxSize的結構體數組
    /*
    for(int i=0;i<MaxSize;i++){
        L[i].data = -1;
        L[i].next = -2;
    }
    */ 
    printf("Size=%d\n",sizeof(L)); 
    InitSList(L);
    p(L);
    return 0;
}
相關文章
相關標籤/搜索