数据结构c语言实现之静态单链表

//c语言实现静态单链表,参考严蔚敏书本代码和《数据结构算法实现及解析》
#include<malloc.h> // malloc()等
#include<limits.h> // INT_MAX等
#include<stdio.h> // EOF(=^Z或F6),NULL
#include<stdlib.h> // atoi()
#include<io.h> // eof()
#include<math.h> // floor(),ceil(),abs()
#include<string.h>  
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define N 6 // 字符串长度

 typedef char ElemType[N];
 // c2-3.h 线性表的静态单链表存储结构
#define MAX_SIZE 100 // 链表的最大长度
 typedef struct
 {
	 ElemType data;
	 int cur;
 }component,SLinkList[MAX_SIZE];
 void main()
 {
	 SLinkList s={{"",1},{"ZHAO",2},{"QIAN",3},{"SUN",4},{"LI",5},{"ZHOU",6},{"WU",7},{"ZHENG",8},{"WANG",0}}; // 教科书中图2.10(a)的状态
	 int i;
	 i=s[0].cur; // i指示第1个结点的位置
	 while(i)
	 { // 输出教科书中图2.10(a)的状态
		 printf("%s ",s[i].data); // 输出链表的当前值
		 i=s[i].cur; // 找到下一个
	 }
	 printf("\n");
	 s[4].cur=9; // 按教科书中图2.10(b)修改(在"LI"之后插入"SHI")
	 s[9].cur=5;
	 strcpy(s[9].data,"SHI");
	 s[6].cur=8; // 删除"ZHENG"
	 i=s[0].cur; // i指示第1个结点的位置
	 while(i)
	 { // 输出教科书中图2.10(b)的状态
		 printf("%s ",s[i].data); // 输出链表的当前值
		 i=s[i].cur; // 找到下一个
	 }
	 printf("\n");
	 getchar();
 }

你可能感兴趣的:(数据结构c语言实现之静态单链表)