静态链表

静态链表是早期实现链表的数组形式链表,主要是向内存申请一段连续的空间,建立一个固定长度的结构体数组。利用游标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;
}
相关文章
相关标签/搜索