대화 데이터 구조 - 링크 삽입 삭제 작업

5881 단어 데이터 구조
대화 데이터 구조 - 링크 삽입 삭제 작업
  • 링크 삭제:
  • 링크 의 삽입 작업
  • 링크 삭제:
    L 의 i 번 째 데이터 요 소 를 삭제 하고 e 로 그 값 을 되 돌려 줍 니 다. L 의 길 이 는 1. 순환 이 끝 난 후에 p 는 i - 1 번 결점 을 가리 키 고 p - > Next 는 i 번 째 결점 을 가리 킵 니 다.i 번 째 노드 가 존재 하지 않 으 면 p - > Next = = None, i 번 째 노드 를 삭제 할 수 없습니다.
    Status ListDelete(LinkList *L,int i,ElemType *e)
    {   
        int j;
        j=1;
        LinkList p,q;
        p=*L;
        while(j<i ||p->Next)
        {
         p=p->Next;
         ++j;
        }
        if(p->Next==None || j>i)
        {
        return ERROR;// i      
        }
        
        q=p->Next;
        *e=q->data;
        p->Next=q->Next;
        free(q);
    }
    
    

    링크 삽입 작업
    순서 선형 표 L 에 이미 조작 결과 가 존재 합 니 다. L 의 i 번 째 위치 에 새로운 데이터 요소 e 를 삽입 하기 전에 L 의 길 이 를 1 로 더 하면 먼저 i - 1 번 결점 을 찾 아야 합 니 다. p 는 i - 1 번 결점 을 가리 키 고 s - > next = p - > Next = s 순환 이 끝 난 후에 p 는 i - 1 번 결점 을 가리 키 며 p = = None 이면 i - 1 번 결점 이 비어 있 습 니 다. 이때 i 번 째 결점 의 주 소 를 찾 을 수 없습니다.그래서 i 번 째 노드 전에 요 소 를 삽입 할 수 없습니다.
    Status ListDelete(LinkList *L,int i,ElemType *e)
    {   
        int j;
        j=1;
        LinkList p,s;
        p=*L;
        while(j<i || p)
        {
         p=p->Next;
         ++j;
        }
        if(p==None || j>i)
           return error;
        s=(LinkList)malloc(sizeof(Node));
        s->Next=p->Next;
        p->Next=s;
        s->data=e;
        return OK;
    }    
    

    좋은 웹페이지 즐겨찾기