算法笔记上P256 链表基本操作

//算法笔记上P256
//创建链表
#include <stdio.h>
#include <stdlib.h>
struct node{
    int data;
    node* next;
};

node* create(int Array[]){
    node *p,*pre,*head;
    head = new node;
    head->next = nullptr;
    pre = head;
    for(int i=0;i<5;i++){
        p = new node;
        p->data = Array[i];
        p->next = nullptr;

        pre->next = p;
        pre = p;
    }
    return head;
}

//2.查找元素
int search(node* head,int x){
    int count = 0;
    node* p = head->next;
    while(p != NULL){
        if(p->data == x){
            count++;
        }
        p=p->next;
    }
    return count;
}

void insert(node* head,int pos,int x){
    node* p = head;
    for(int i=0;i<pos-1;++i){
        p = p->next;
    }
    node* q = new node;
    q->data = x;
    q->next = p->next;
    p->next = q;
}

void del(node* head,int x){
    node* p = head->next;
    node* pre = head;
    while(p != NULL){
        if(p->data == x){
            pre->next = p->next;
            delete (p);
            p = p->next;
        }else{
            pre = p;
            p = p->next;
        }
    }
}


int main(){
    int Array[5] = {5,3,6,1,2};
    node* L = create(Array);
    L = L->next;
    while(L != nullptr){
        printf("%d ",L->data);
        L = L->next;
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务