C单链表实现数组输入、自动排序、删除功能

C单链表实现数组输入、自动排序、删除功能,第1张

#include
#include

typedef struct Node{
        int value;
        struct Node *next;

}datatype;
void InsertNode(datatype **head,int value){
        datatype *previous;     //前一个
        datatype *current;      //当前的
        datatype *new;
        current = *head;
        previous=NULL;

        while(current != NULL && current->valuenext;
        }
        new=(datatype *)malloc(sizeof(datatype));
        new->value=value;
        new->next=current;

        if(previous==NULL){
                *head=new;

        }
        else{
                previous->next=new;
        }
}

void Delete(datatype **head,int value){
        datatype *previous;
        datatype *current;

        current=*head;
        previous=NULL;

        while(current != NULL&& current ->value != value){
                previous = current;
                current = current ->next;
        }
        if(current == NULL){
                printf("找不到该节点\n");
                return;
        }
        else{
                if(previous == NULL){
                        *head=current->next;
                }
                else{
                        previous->next = current->next;

                }
                free(current);
        }

}

void printNode(datatype *head){

        datatype *current;
        current = head;
        while(current != NULL){
                printf("%d ",current->value);
                current=current->next;
        }
        putchar('\n');
}

int main(){
        datatype *head=NULL;
        int input;

        while(1){
                printf("请输入一个整数(输入-1结束):");
                scanf("%d",&input);
                if(input==-1){

                        break;
                }
                InsertNode(&head,input);
                printNode(head);
        }
        printf("开始删除链表中的整数:\n");
        while(1){
                printf("请输入要删除的整数(输入-1结束):");
                scanf("%d",&input);
                if(input==-1){

                        break;
                }
                Delete(&head,input);
                printNode(head);
        }
        return 0;
}

请输入一个整数(输入-1结束):5
5 
请输入一个整数(输入-1结束):4
4 5 
请输入一个整数(输入-1结束):1
1 4 5 
请输入一个整数(输入-1结束):3
1 3 4 5 
请输入一个整数(输入-1结束):4
1 3 4 4 5 
请输入一个整数(输入-1结束):7
  3 4 4 5 7 
请输入一个整数(输入-1结束):-1
开始删除链表中的整数:
请输入要删除的整数(输入-1结束):4
1 3 4 5 7 
请输入要删除的整数(输入-1结束):4
1 3 5 7 
请输入要删除的整数(输入-1结束):5
1 3 7 
请输入要删除的整数(输入-1结束):5
找不到该节点
1 3 7 
请输入要删除的整数(输入-1结束):-1

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/564231.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-03
下一篇 2022-04-03

发表评论

登录后才能评论

评论列表(0条)

保存