1.循环单链表
#include<stdio.h>
#include<stdlib.h>
typedef int Elemtype;
typedef int Status;
typedef struct CSLNode
{
Elemtype data;
struct CSLNode* next;
}CSLNode, * CSLinkList;
Status InitCSLinkList(CSLinkList& L)
{
L = (CSLNode*)malloc(sizeof(CSLNode));
if (L == NULL)
return false;
L->next = L;
return true;
}
Status Empty(CSLinkList L)
{
if (L->next == L)
return true;
else
return false;
}
Status isTail(CSLinkList L, CSLNode* p)
{
if (p->next == L)
return true;
else
return false;
}
2.循环双链表
#include<stdio.h>
#include<stdlib.h>
typedef int Elemtype;
typedef int Status;
typedef struct CDLNode
{
Elemtype data;
struct CDLNode *prior,* next;
}CDLNode, * CDLinkList;
Status InitCDLinkList(CDLinkList& L)
{
L = (CDLNode*)malloc(sizeof(CDLNode));
if (L == NULL)
return false;
L->prior = L;
L->next = L;
return true;
}
Status Empty(CDLinkList L)
{
if (L->next == L)
return true;
else
return false;
}
Status isTail(CDLinkList L, CDLNode* p)
{
if (p->next == L)
return true;
else
return false;
}
3.静态链表
#define MaxSize 10
typedef struct{
Elemtype data;
int next;
}SLinkList[MaxSize];
【注】本人只是针对考研数据结构复习做的笔记,所以会根据考试大纲要求的不同,做不同程度强度的博客
|