编写一个程序,对单向循环链表的操作

来源:百度知道 编辑:UC知道 时间:2024/05/16 11:36:21
1.建立一个具有头节点的单向循环链表
2.输出单向循环链表的所有节点的值
3.查找第i个节点或值为某一个值的节点
4.在指定地方插入一个节点
5.删除指定节点
6.退出系统

运行环境 C++

#define int KeyType //定义KeyType 为int型
typedef struct node{
KeyType key; //关键字域
OtherInfoType info; //其它信息域,
struct node * next; //链表中指针域
}RecNode; //记录结点类型
typedef RecNode * LinkList ; //单链表用LinkList表示
void InsertSort(LinkList head)
{//链式存储结构的直接插入排序算法,head是带头结点的单链表
RecNode *p,*q,*s;
if ((head->next)&&(head->next->next))//当表中含有结点数大于1
{
p=head->next->next;//p指向第二个节点
head->next=NULL;
q=head;//指向插入位置的前驱节点
while(p)&&(q->next)&&(p->key<q->next->key)
q=q->next;
if (p)
{s=p;p=p->next;// 将要插入结点摘下
s->next=q->next;//插入合适位置:q结点后
q->next=s;
}
}
}