#include<stdio.h>
#include<stdlib.h>
int list_len = 0;
typedef struct note
{
int xuhao;
struct note *next;
}linklist_t;
linklist_t * creat_linklist()
{
linklist_t * h ;
h = (linklist_t *)malloc(sizeof(linklist_t));
h->xuhao=0;
h->next = h;
list_len ++;
return h;
}
void append_linklist(linklist_t *h,int value)
{
linklist_t *p;
p = (linklist_t *)malloc(sizeof(linklist_t));
p->xuhao = value;
p->next = h->next;
h->next = p;
list_len++;
}
void remove_linklist(linklist_t *h,int value)
{
linklist_t *p = h;
linklist_t *q = NULL;
int i;
for(i=0;i<list_len;i++)
{
if (p->next->xuhao == value)
{
q = p->next;
p->next =p->next->next;
free(q);
list_len--;
break;
}
p = p->next;
}
}
void modify_linklist(linklist_t *h,int ol_value,int ne_value)
{
linklist_t *p = h ;
int i;
for(i=0;i<list_len;i++)
{
if (p->next->xuhao == ol_value)
{
p->next->xuhao = ne_value;
break;
}
p = p->next;
}
}
int search_linklist(linklist_t *h, int value)
{
linklist_t *p = h;
int ret ;
int i;
for(i=0;i<list_len;i++)
{
if (p->next->xuhao == value)
{
ret = 0;
break;
}
else
{
ret = -1;
}
p = p->next;
}
return ret;
}
int reverse_linklist(linklist_t *h)
{
int i;
linklist_t *p = h->next;
linklist_t *q;
for(i=0;i<list_len;i++)
{
q = p;
p = p->next;
q->next = h->next;
h->next =q;
}
return 0;
}
void linklist_t_show(linklist_t *h)
{
linklist_t *p = h;
int i;
for(i=0;i<list_len;i++)
{
printf("%d ",p->xuhao);
p = p->next;
}
printf("\n");
}
int main()
{
linklist_t *H =creat_linklist();
int i,ret;
for(i=0;i<10;i++)
{
append_linklist(H,i+1);
}
linklist_t_show(H);
#if 1
//reverse_linklist(H);
remove_linklist(H,3);
modify_linklist(H,0,11);
linklist_t_show(H);
ret = search_linklist(H,3);
if (ret == 0)
{
printf("have\n");
}
else
{
printf("have no\n");
}
#endif
return 0;
}
数据结构-循环链表
最新推荐文章于 2024-02-04 11:36:00 发布
