C语言循环链表的简单应用语言循环链表的简单应用
C语言循环链表的简单应用,感兴趣的朋友可以看看。
/*****************************************************************************
本程序对循环链表进行处理,分别对链表的长度进行设定、插入、删除和释放,
并且通过对操作者的限制来防止因操作者的操作失误而带来的不可设想的后果,本程序
有较强的安全性程序的细节如下:
*****************************************************************************/
#include <stdio.h>
#include <stdlib.h>
typedef struct stu //定义TYM结构体类型
{
char name[20];
int score;
struct stu *llink,*rlink; //llink为左链域指针,rlink为右链域指针
}TYM;
TYM *Insert(TYM*head) //插入结点函数
{
int i;
int pos,len;
TYM *a,*s,*p,*q;
printf("*********** Insert *************");
if(head->llink!=NULL) //如果链表存在
{
for(p=head->rlink,i=2;p!=head;p=p->rlink,i++); //检测链表的长度
printf("Position(No More Than %d): ",i); //提示输入的值的范围
scanf("%d",&pos); //输入插入的位置
while(pos<0||pos>i) //如果输入负数
{
printf("Please enter the correct!Position(No More Than %d): ",i);
scanf("%d",&pos); //输入插入的位置
}
}
printf("Lenth: ");
scanf("%d",&len); //输入插入的结点个数
while(len<0) //如果输入负数
{
printf("Please enter the correct!Lenth: ");