新零云博客 - 专注活动,软件,教程分享!

新零云博客
XingLy.Cn
ad

C语言数据结构之线性表(链表创建-插入-查找-删除)优化版

C语言数据结构之线性表(链表创建-插入-查找-删除)优化版

请输入图片描述


            #include<bits/stdc++.h>
    using namespace std;
    struct node{
        int data;
        node *next;
    };
    int length(node L){        //求表长o(n) 
        node p=L;
        int n=0;
        while(p!=NULL)
            p=p->next;
            n++;
        }
        return n;
    }
    node findid(node L,int x){            //按序号查找o() 
        node p=L;
        int i=1;
        while(p!=NULL&&i<x){
            p=p->next;
            i++;
        }
        if(p==NULL) retur NULL;            //改进 
        else return p;
    }
    node find(node L,int x){
        node p=L;
        while(p!=NULL&&p->data!=x){
            p=p->next;
        }
        return p;
    } 
    node insert(node L,int i,int x){
        node p,s;
        if(i==1){
            s=new node;
            s->data=x;
            s->next=L;
            return s;        //头指针变化 
        }
        p=findid(L,i-1);
        if(p==NULL) return NULL;
        else{
            s=new node;
            s->data=x;
            s->next=p->next;
            p->next=s;
            return L;        //头指针未变化 
        }
        
    } 
    node deletee(node L,int i){
        node p,s;
        if(i==1){
            s=L;
            if(L!=NULL) L=L->next;
            else return NULL;
            delete(s);
            return L;
        }
        p=findid(L,i-1);
        if(p==NULL) return NULL;
        else if(p->next==NULL) return NULL;
        else{
            s=p->next;
            p->next=s->next;
            delete(s);
            return L;
        }
    }
    int main(){
        
        
        return 0;
    }

本原创文章未经允许不得转载 | 当前页面:新零云博客 - 专注活动,软件,教程分享! » C语言数据结构之线性表(链表创建-插入-查找-删除)优化版

评论