#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct looplink { int data; struct looplink *next; }clink; clink *create_link(int data) { clink *p=malloc(sizeof(clink)); memset(p,0,sizeof(clink)); p->data=data; return p; } void insert_data(clink *head,int nu) { clink *new=NULL; clink *p=head; if(p->next == NULL) { p->data=nu; p->next=p; return ; } new=create_link(nu); while(p->next!= head) p=p->next; new->next=p->next; p->next=new; return ; } clink *del_data(clink *head,int n) { int i,j=0; clink *p=head; clink *tmp; while(p->next!=p) { i=1; while(i<n-1) { p=p->next; i++; } tmp=p->next; printf("%d\t",tmp->data); p->next=p->next->next; free(tmp); p=p->next; if(++j%10==0) putchar(10); } return p; } show_data(clink *head) { clink *p =head; do { printf("%d\t",p->data); p=p->next; }while(p!=head); putchar(10); } int main() { clink *head=create_link(0); int nu,count,num,i; puts("input the num and count"); scanf("%d %d",&num,&count); puts("****************"); #if 0 for(i=0;i<num;i++) { scanf("%d",&nu); insert_data(head,nu); } #endif for(i=1;i<=num;i++) insert_data(head,i); head=del_data(head,count); putchar(10); puts("---------------"); show_data(head); return 0; }