数据结构(C语言版)-静态链表的实现(部分实现)

版权声明:本文为博主原创文章,未经博主允许不得转载。
注:为了方便编写,本人使用C++实现,与C语言并无太大差别,仅供参考,只实现部分主要功能,其余可以功能可仿照自行添加;
完整代码:

#include
using namespace std;
#define MAXSIZE 10//数组的最大长度
#define SUCCESS 1//操作成功
#define ERROR -1//操作失败
typedef int ElemType;//定义数据类型
int STATUS=0;//定义全局变量,用于判断静态链表是否初始化,0表示没有,1表示已经初始化
typedef struct SL{
	ElemType elem;
	int cur;
}list;
int ListLength(SL* list);
//获取空闲分量
int Malloc_SL(SL* list){
	int i=list[0].cur;
	if(list[0].cur){
		list[0].cur=list[i].cur;
	}
	return i;
}
//回收空闲分量
void Free_SL(SL* list,int i){
	list[i].cur=list[0].cur;
	list[0].cur=i;
}

//1-初始化静态链表(此时将所有节点放入被用链表)
void InitList_SL(SL *list){
	if(STATUS==1){
		cout<<"链表已经初始化!"<ListLength(list)+1){
		cout<<"插入位置错误!"<ListLength(list)){
		return ERROR;
	}
	k=MAXSIZE-1;
	for(j=1;j<=i-1;j++){
		k=list[k].cur;
	}
	list[j].elem=0;
	j=list[k].cur;
	list[k].cur=list[j].cur;
	Free_SL(list,j);
	return SUCCESS;

}
//4-静态链表的长度
int ListLength(SL* list){
	int j=0;
	if(STATUS==0){
		cout<<"链表不存在!无法操作!"<ListLength(list)){
		cout<<"位置错误!"<>n;
	switch(n){
		case 1:
			InitList_SL(list);
			menu(list);
		case 2:
			cout<<"请输入数据:";
			cin>>e;
			cout<<"请输入插入位置:";
			cin>>i;
			ListInsert(list,i,e);
			menu(list);
		case 3:
			cout<<"请输入删除位置:";
			cin>>i;
			DeleteList(list,i);
			menu(list);
		case 4:
			cout<<"当前静态链表的长度为:"<>i;
			cout<<"第"<

你可能感兴趣的:(数据结构)