静态链表

本文介绍了一种静态链表的数据结构定义及其基本操作实现,包括初始化、获取长度、按序号查找元素及插入新节点等核心功能。

定义一个静态链表

typedef struct

{
DataType data;
int cursor;
 }SLinkList[maxsize];

 SLinkList S;

 void Init_SLinkList(SLinkList S)
 {
 	S[0].cursor=0;
 }
 int Length_SLinkList(SLinkList S)
 {
 	int l,c;
 	l=0;
 	c=0;
 	while(S[c].cursor!=0)
 	{
 		c=S[c].cursor;
 		i++;
	 }
	 return 1;
 }
 //按序号查找 
 int Get_SLinkList(SLinkList S,int i)
 {
 	int c;
 	int j;//j是计数器,用来判断当前的结点是肉食第i个结点 
 	c=0;
 	j=0;
 	while(c!=0&&j<i)
 	{
 		c=S[c].cursor;
 		j++;
	 }
	 return c;
 }
 //插入运算 
 void Insert_SLinkList(SLinkList S,int i,DataType x)
 //在静态链表S中第i个位置插入值为x的新节点 
 {
 	int c,l;//c记录当前数组分量的位置,l记录S的表长
	 c=Get_SLinkList(L,i-1);
	 if(c==0)
	 {
	 	printf("插入位置不合法");
		 exit(1); 
	  } 
	  else
	  {
	  	l=length_SLinkList(S);
	  	S[++l].data=x;
	  	S[l].cursor=S[c].cursor;
	  	S[c].cursor=l;
	  }
  } 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值