//
更多原创“uC/OS-II学习笔记之:系列”基础及嵌入式相关知识详解,请访问可乐虎博客:
相信不会让您失望!!
//
//在理解静态链表前首先得理清以下概念:
//(1)游标:本质是数组元素的下标;
//(2)指针“域”里存放的不是地址而是游标。
#include <stdio.h>
#define size 10
typedef struct
{
char name[10];
int cur;//游标
}SLinkList;
void traverse_SL(SLinkList *pS, int k);
int main(void)
{
//{"", 1}为头结点,{"hong", 0}为尾结点
SLinkList arr[size] = { {"", 1}, {"zhang", 2}, {"yang", 3}, {"wang", 4}, {"dong", 5}, {"hong", 0} };
traverse_SL(arr, 0);
return 0;
}
//遍历静态链表
void traverse_SL(SLinkList *pS, int k)
{
int i = 0;
i = pS[k].cur;
while (i)//直到i为0跳出循环
{
printf("%s ", pS[i].name);
i = pS[i].cur;//将i朝后移
}
printf("\n\n");
return;
}
//注:静态链表的精华就在 i = pS[i].cur 算法实现的游标后移