循环单链表应掌握以下基本操作:
1、建立一个空的循环单链表。
2、获得循环单链表的最后一个结点的位置。
3、输出循环单链表中各结点的值。
4、在循环单链表中查找值为x的结点。
5、在循环单链表中第i个结点后插入值为x的新结点。
6、在循环单链表中删除值为x 的结点。
以下是头文件:(可以有选择的看,有很多算法)
#ifndef CIRCLE_HEAD_LINK_H_INCLUDED
#define CIRCLE_HEAD_LINK_H_INCLUDED
#include <stdio.h>
#include <stdlib.h>
typedef int datatype;
typedef struct circle_link
{
datatype info;
struct circle_link *next;
}N;
/*创建一个空链表*/
N *init()
{
return NULL;
}
/*创建一个循环单链表*/
N *creat(N *head)
{
printf("以输入-1为结束\n");
int x;
N *p,*q,*h=head;
scanf("%d",&x);
while(x!=-1)
{
p=(N*)malloc(sizeof(N));
p->info=x;
p->next=NULL;
if(!h)
{
q=p;
h=p;
}
else
{
q->next=p;
q=p;
}
scanf("%d",&x);
}
p->next=h;
printf("\n创建完成\n");
return h;
}
/*打印循环单链表*/
void displ