栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

2023王道数据结构课内代码(2.3循环链表与静态链表)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2023王道数据结构课内代码(2.3循环链表与静态链表)

1.循环单链表

#include
#include

typedef struct LNode{
	int data;
	struct LNode *next;
}LNode,*LinkList;

bool InitList(LinkList &L){
	L=(LNode*)malloc(sizeof(LNode));
	if(L==NULL){  //内存空间不足 
		return false;
	}
	L->next=L;
	return true;
}

bool Empty(LinkList &L){
	if(L->next==L){
		return true;
	}else{
		return false;
	}
}

bool IsTail(LinkList L,LNode *p){
	if(p->next==L){
		return true;
	}else{
		return false;
	}
}

2.循环双链表

#include
#include

typedef struct DNode{
	int data;
	struct DNode *prior,*next;
}DNode,*DLinkList;

bool InitDLinkList(DLinkList &L){
	L=(DNode*)malloc(sizeof(DNode));
	if(L==NULL){
		return false;
	}
	L->prior=L;
	L->next=L;
	return true;
}

bool Empty(DLinkList L){
	if(L->next==L){
		return true;
	}else{
		return false;
	}
}

bool IsTail(DLinkList L,DNode *p){
	if(p->next==L){
		return true;
	}else{
		return false;
	}
}

bool InsertNextDNode(DNode *p,DNode *s){
	s->next=p->next;
	p->next->prior=s;
	s->prior=p;
	p->next=s;
}

bool DeleteNextDNode(DNode *p,DNode *s){
	p->next=s->next;
	s->next->prior=p;
	free(s);
}

void main(){
	DLinkList L;
	InitDLinkList(L);
	
}

3.静态链表

#include
#include
//静态链表的最大长度 
#define MaxSize 10

struct Node{
	int data;
	int next;  //下一个元素的数组下标 
};

void InitNode(Node &arr){
	arr[0]->next=-1;
	for(int i=1;inext=-2;  //空的标记为-2,方便计算机识别 
	}
}

void main(){
	struct Node arr[MaxSize];  //数组a 作为静态链表
	InitNode(arr);
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/832671.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号