您的位置:首页 > 理论基础 > 数据结构算法

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

2013-12-08 14:06 239 查看
//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
;
// 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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: