数据结构-线性表-静态链表

定义

#include <stdio.h>
#include <stdlib.h>
#define MaxSize 10  //静态链表的最大长度

struct Node {  //静态链表结构类型的定义
    int data;  //存储数据元素
    int next;  //下一个元素的数组下标
};
typedef struct Node SLinkList[MaxSize];

#if 0
//课本上的定义方法
typedef struct {  //静态链表结构类型的定义
    int data;  //存储数据元素
    int next;  //下一个元素的数组下标
}SLinkList[MaxSize];
#endif

void testSLinkList(){
    struct Node a[MaxSize];
    //...后续代码
}

#if 0
//课本上的定义方法
void testSLinkList(){
    SLinkList a;
    //...后续代码
}
#endif

int main(void){
    return 0;
}

 

定义中猜想的验证

#include <stdio.h>
#include <stdlib.h>
#define MaxSize 10  //静态链表的最大长度

struct Node {  //静态链表结构类型的定义
    int data;  //存储数据元素
    int next;  //下一个元素的数组下标
};

typedef struct {  //静态链表结构类型的定义
    int data;  //存储数据元素
    int next;  //下一个元素的数组下标
}SLinkList[MaxSize];

void testLinkList(){
    struct Node x;
    printf("sizeX=%d\n",sizeof(x));  //一个结点8个字节

    struct Node a[MaxSize];
    printf("sizeA=%d\n",sizeof(a));

    SLinkList b;
    printf("sizeB=%d\n",sizeof(b));
}

int main(void){
    testLinkList();
    return 0;
}

基本操作

//用数组的方式实现的链表
//不能随机存取
//容量是固定的

#include <stdio.h>
#include <stdlib.h>
#define MaxSize 10  //静态链表的最大长度

typedef struct {  //静态链表结构类型的定义
    int data;  //存储数据元素
    int next;  //下一个元素的数组下标
}SLinkList[MaxSize];

//初始化静态链表
//空闲结点的next为-2
//删除的时候也要将next变为-2

//查找到某一个位序的结点

//时间复杂度O(n)

int main(void){
    return 0;
}
THE END
分享
二维码
海报
数据结构-线性表-静态链表
定义 #include <stdio.h> #include <stdlib.h> #define MaxSize 10 //静态链表的最大长度 struct Node { //静态链表结构类型的定义 i……