111111

发布时间:2022-06-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了111111脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>

typedef struct node  {
    int data;
    struct node *next;
} NODE;
NODE *Head = NULL;

NODE  *makeANode(int data)
{
    NODE *p = (NODE *)malloc(sizeof(NODE));
    p->data = data;
    p->next = NULL;
    return p;
}
    
int insertNodeHead(int data, NODE *head)
{
    if (head == NULL) {
        head = (NODE *) malloc(sizeof(NODE));
        if (head == NULL) {
            printf("malloc failn");
            return -1;
        }
        head->data = data;
        return 0;
    }
    
    NODE *tmp = makeANode(data);
    tmp->next = head->next;
    head->next = tmp;
    return 0;
}
int insertNodeTail(int data, NODE *head)
{
    if (head == NULL) {
        head = (NODE *) malloc(sizeof(NODE));
        head->data = data;
        return 0;
    }
    NODE *tmp = makeANode(data);
    NODE *p = head->next;
    while(p->next != NULL) {
        p = p->next;
    }
    p->next = tmp;
    return 0;
}

int insertNodeSomeAfter(int value, int data, NODE* head)
{
    if (head == NULL) {
        head = (NODE *) malloc(sizeof(NODE));
        head->data = data;
        return 0;
    }
    NODE *tmp = makeANode(data);
    
    NODE *p = head->next;
    for (p; p->next != NULL; p = p->next) {
        if (p->data == value) {
            tmp->next = p->next;
            p->next = tmp;
            break;
        }
    }
    
    return 0;
}

int DeleteNodeOne(int data, NODE *head)
{
    if (head == NULL) {
        return -1;
    }
    if (head->data == data) {
        NODE *p = head;
        head = head->next;
        free(p);
        return 0;
    }
    NODE *tmp = head->next;
    for (tmp; tmp->next != NULL; tmp = tmp->next) {
        if (tmp->next->data == data) {
            NODE *p = tmp->next;
            tmp->next = p->next;
            p->next = NULL;
            free(p);
            return 0;
        }
    }
    
    return 0;
}

int main()
{
    int num = 0;
    scanf("%d", &num);
    int i = num / 2;
    int hd = 0;
    NODE *p = Head;
    scanf("%d", &hd);
    insertNodeHead(hd, Head);
    if (p ==NULL)
    {
        printf("head is nulln");
    }
    for (int m = 0; m < num - 1; m++) {
        int value = 0, data = 0;
        scanf("%d%d", &data, &value);
        insertNodeSomeAfter(value, data, Head);
    }
    
    int del = 0;
    scanf("%d", &del);
    
    for (p; p->next != NULL; p = p->next) {
        printf("%d ", p->data);
    }
    DeleteNodeOne(del, Head);
    

    if (p ==NULL)
    {
        printf("head is nulln");
    }
    for (p; p->next != NULL; p = p->next) {
        printf("%d ", p->data);
    }
    
    
    
    return 0;
}

 

脚本宝典总结

以上是脚本宝典为你收集整理的111111全部内容,希望文章能够帮你解决111111所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: