与单链表的区别是:最后一个结点的 next 域指向头结点处;
#pragma once
typedef struct CNode
{
int data;
struct CNode*next;
}CNode,*CList;
void InitCList(CList plist);
bool Insert_head(CList plist,int val);
bool Insert_tail(CList plist,int val);
bool Insert_pos(CList plist,int pos,int val);
static CNode *GetNode(int val);
CNode *Search_pre(CList plist,int key);//查找key 的前驱
bool Delete(CList plist,int key);
bool isEmpty(CList plist);
void Destroy(CList plist);
int GetLength(CList plist);
void Show(CList plist);
代码:
#include<stdio.h>
#include"CList.h"
#include<assert.h>
#include<stdlib.h>
void InitCList(CList plist)
{
assert( plist != NULL);
if(plist == NULL)
{
return;
}
plist->next &