靜態鏈表是早期實現鏈表的數組形式鏈表,主要是向內存申請一段連續的空間,建立一個固定長度的結構體數組。利用遊標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; }