2024-2-3-复习作业

2024-2-3-复习作业_第1张图片

1>

要求:

效果图:

2024-2-3-复习作业_第2张图片

2024-2-3-复习作业_第3张图片

2024-2-3-复习作业_第4张图片

2>

要求:

2024-2-3-复习作业_第5张图片

效果图:

2024-2-3-复习作业_第6张图片

3>

要求:

效果图:

2024-2-3-复习作业_第7张图片

源代码:

#include 
#include 
typedef int datatype;
typedef struct Node
{
    datatype data;
    struct Node *next; 
}*LinkList;

LinkList create()
{
    LinkList s=(LinkList)malloc(sizeof(struct Node));
    if(s==NULL) return NULL;
    s->data=0;
    s->next=s;
    return s;
}


LinkList head_insert(LinkList head,int element)
{

    LinkList s=create();
    s->data=element;
    if(head==NULL) 
    {
        head=s;
    }
    else
    {
        LinkList p=head;
        while (p->next!=head)
            p=p->next;        
        s->next=head;
        head=s;
        p->next=head;        
    }
    return head;
}


LinkList rear_insert(LinkList head,int element)
{
    LinkList s=create();
    s->data=element;
    if(head==NULL)
    {
        head=s;
    }
    else 
    {
        LinkList p=head;
        while(p->next!=head)
        {
            p=p->next;
        }
        p->next=s;
        s->next=head;
    }
    return head;
}

LinkList  head_delete(LinkList head)
{
    if(head==NULL) return NULL;
    LinkList del=head,p=head;
    while(p->next!=head)
    {
        p=p->next;
    }
    head=head->next;
    p->next=head;
    free(del);
    del=NULL;
    return head;
}

LinkList rear_delete(LinkList head)
{
    if(head==NULL) return NULL;
    LinkList del=head;
    while(del->next->next!=head)
    {
        del=del->next;
    }
    free(del->next);
    del->next=head;

    return head;
}


void output(LinkList head)
{
    if(head==NULL) {printf("empty!\n");return;}
    else 
    {
        LinkList p=head;
        do 
        {
            printf("%d ",p->data);
            p=p->next;
        }while(p!=head);
    }
}
int length(LinkList head)
{
    int len=0;
    if(head==NULL)  return len;
    len+=1;
    LinkList p=head;
    do
    {
        len++;
        p=p->next;
    }while(p->next!=head);
    return len;
}
void sort_list(LinkList head)
{
    if(head==NULL)  return;
    
    
    int len=length(head);
    for(int i=1;idata >p->next->data)
            {
                datatype t=p->data;
                p->data=p->next->data;
                p->next->data=t;
            }
            p=p->next;
        }        
    }
}
void joseph(LinkList head,int n, int m)
{
    if(head==NULL) return ;
    LinkList p=head;
    for(int i=0;inext;
        }
        LinkList del=p->next;
        printf("%d ",del->data);
        p->next=del->next;
        free(del);del =NULL;
        p=p->next;
    }
    puts("");

}

int main(void) 
{
    int n,element;
    LinkList head=NULL;
    printf("please enter n: ");
    scanf("%d",&n);

for(int i=0;i

你可能感兴趣的:(c语言,数据结构,开发语言,linux,算法)