第 2 章 线性表(静态链表示例)

1. 背景说明

第 2 章 线性表(静态链表示例)_第1张图片

图 2.10(b) 展示了图 2.10(a) 所示线性表在插入数据元素 “SHI” 和删除数据元素 “ZHENG” 之后的状况。

为了和指针型描述的线性链表相区别,我们给这种用数组描述的链表起名叫静态链表。

2. 示例代码

/* 静态链表示例源文件 */

#include 
#include 

#define MAXSIZE 100 /* 链表的最大长度 */
#define N 6

typedef char ElemType[N];

typedef struct {
	ElemType data;
	int curr;
} SLinkList[MAXSIZE];

int main(void)
{
	SLinkList S = { { "", 1 }, { "ZHAO", 2 }, { "QIAN", 3 }, { "SUN", 4 }, { "LI", 5 },
		{ "ZHOU", 6 }, { "WU", 7 }, { "ZHENG", 8 }, { "WANG", 0 } };
	int i = S[0].curr;
	while (i) {
		printf("%s ", S[i].data);
		i = S[i].curr;
	}

	printf("\n");
	S[4].curr = 9;
	S[6].curr = 8;
	S[9].curr = 5;
	strcpy_s(S[9].data, sizeof(ElemType), "SHI");
	i = S[0].curr;
	while (i) {
		printf("%s ", S[i].data);
		i = S[i].curr;
	}

	printf("\n");

	return 0;
}

3. 输出示例

你可能感兴趣的:(#,数据结构(C语言版),数据结构,算法,c语言)