데이터 구조 - 단일 체인 테이블 조작 코드 실현

1204 단어 데이터 구조
단일 링크 조작 코드 구현
//       
typedef struct node{
    int data;
    struct node *next;
}NODE,*LinkList;

//     ,      k   ,   ,        ,    NULL
//L            
LinkList Find_List(LinkList L,int k)
{
    LinkList p;
    int i = 1;
    p = L->next;
    while (p && i < k) {
        p = p->next;
        i++;
    }
    
    if(p && i == k){
        return p;
    }
    
    return NULL;
}

//     , newElem      k     ,    0,    -1
//L            
int Insert_List(LinkList L,int k,int newElem)
{
    LinkList p,s;
    if(k == 1){
        p = L;
    }else{
        p = Find_List(L,k-1);
    }
    if(!p){
        return -1;
    }
    
    s = (NODE*)malloc(sizeof(NODE));//        
    if(!s){
        return -1;
    }
    s->data = newElem;
    s->next = p->next;
    p->next = s;//    newElem   k-1     
    return 0;
}

//      ,     k   ,    0,    -1
//L            
//   k        k-1    next   k+1   
int Delete_List(LinkList L,int k)
{
    LinkList p;
    if(k == 1){
        p = L;
    }else{
        p = Find_List(L,k-1);
    }

    if(!p || !p->next){
        return -1;
    }
    p->next = p->next->next;
    return 0;
}

좋은 웹페이지 즐겨찾기