标签:++ 位置 its 指定位置 print void 链表 amp locate
typeDefine.h 头文件
#define MAXSIZE 100
typedef struct {
	
	int data;
	int cur;
}component,SLinkList[MAXSIZE];//SLinkList类型为1000长度的数组
//初始化静态链表
void InitSpace_SL(SLinkList S);
//在静态链表中查找元素
int LocateElem_SL(SLinkList S, int e);
//输出静态链表中的所有的元素
void outPutElem_SL(SLinkList S);
//向静态链表中的第i元素插入元素
void InserrElem_SL(SLinkList S,int i);
//在静态链表中插入元素
void DelElem_SL(SLinkList S, int i);
realize.c
#include "stdio.h"
#include "stdlib.h"
#include "typeDefine.h"
//初始化静态链表
void InitSpace_SL(SLinkList S) {
	
	int i = 0;
    for (i ;i < 10; i++)
	{
		S[i].cur  = i + 1;//i等于0时为头结点,
		S[i].data = i;
	}
	S[i].data = i;
	S[i].cur = 0;//cur为零时为链表的结尾
}
//在静态线性表中查找第一个值为e的元素
int LocateElem_SL(SLinkList S, int e) {
	int i = S[0].cur;
	while (i&&e!=S[i].data)
	{
		i = S[i].cur;
		
	}
	return i;
}
//输出所有元素
void outPutElem_SL(SLinkList S) {
	
	int i = S[0].cur;
	while (i)
	{
		printf("元素的值为%d\n",S[i].data);
		i = S[i].cur;
}
}
//在第i个位置插入元素
void InserrElem_SL(SLinkList S, int i) {
	int j = 0;
	int k = 0;
	while (j<i-1)
	{
		k=S[k].cur;
		j++;
	}
	S[k].cur = 11;
	S[11].cur = k + 1;
	S[11].data = 11;
}
//删除第i个位置的元素
void DelElem_SL(SLinkList S,int i) {
	int j = 0;
	int k = 0;
	while (j<i - 1)
	{
		k = S[k].cur;
		j++;
	}
	//删除元素并没有释放数组的空间(需要释放空间)
	S[k].cur = S[S[k].cur].cur;
}
staticLinkList.c
#include "stdio.h"
#include "stdlib.h"
#include "typeDefine.h"
void main() {
	  SLinkList L;//int L[100]的数组 L为数组的首地址
     //初始化静态链表 
	 InitSpace_SL(L);
	 //在指定位置插入元素 
	 InserrElem_SL(L,2);
	 //删除指定位置的元素
	 DelElem_SL(L,2);
	 //输出链表中所有元素
	 outPutElem_SL(L);
}
标签:++ 位置 its 指定位置 print void 链表 amp locate
原文地址:http://www.cnblogs.com/paulversion/p/7569110.html