데이터 구조 - 순서 표 삭제 연습

코드 기능: 1. 순서 표 의 첫 번 째 값 이 x 인 요 소 를 삭제 합 니 다. 2. 순서 표 의 모든 값 이 x 인 요 소 를 삭제 합 니 다. 3. 순서 표 에서 p 로 표 시 된 연속 k 개 요 소 를 삭제 합 니 다.
함수 설명:
  • 함수 성명: PSeqList createNullListseq (int m) 함수 기능: 순서 표 함수 매개 변 수 를 만 듭 니 다. m 는 결점 을 신청 하 는 개수 함수 반환 값: 생 성 된 선형 표
  • 를 되 돌려 줍 니 다.
  • 함수 성명: int locateseq (PSeqList palist, int x) 함수 기능: 순서 표 의 찾기 함수 파라미터: palist 는 처리 해 야 할 순서 표 이 고 x 는 찾 는 요소 함수 반환 값 입 니 다. 요소 가 존재 하면 아래 표 시 를 되 돌려 주 며 FALSE
  • 를 되 돌려 주지 않 습 니 다.
  • 함수 성명: int deleteVseq (PSeqList palist, DataType x) 함수 기능: 순서 표 의 첫 번 째 값 이 x 인 요소 함수 인 자 를 삭제 합 니 다. palist 는 처리 해 야 할 순서 표 이 고 x 는 요소 함수 반환 값 을 삭제 하려 고 합 니 다. 삭제 성공 반환 1, 실패 반환 0
  • 함수 성명: int deletesVseq (PSeqList palist, DataType x) 함수 기능: 순서 표 의 모든 값 이 x 인 요소 함수 인 자 를 삭제 합 니 다. palist 는 처리 해 야 할 순서 표 이 고 x 는 요소 함수 반환 값 을 삭제 하려 고 합 니 다. 삭제 성공 반환 1, 실패 반환 0
  • 함수 성명: int deletesPseq (PSeqList palist, int p, int k) 함수 기능: 순서 표 에서 p 로 표 시 된 연속 k 개 요소 함수 파 라미 터 를 삭제 합 니 다. palist 는 처리 해 야 할 순서 표 입 니 다. p 는 요소 아래 표 시 를 삭제 하려 고 합 니 다. k 는 연속 요소 개수 함수 반환 값 입 니 다. 삭제 에 성공 하면 1 로 돌아 갑 니 다. 그렇지 않 으 면 프로그램 을 직접 끝 냅 니 다.
  • 함수 성명: void print (PSeqList palist) 함수 기능: 인쇄 순서 표 함수 파라미터: palist 는 처리 해 야 할 데이터 시트 함수 반환 값: 없 음
  • #include
    #include
    #include 
    #define FALSE 0
    #define TRUE 1
    typedef int DataType;
    
    //        
    struct SeqList
    {
        int MAXNUM;  //         
        int n;       //            
        DataType *element; //            
    };
    typedef struct SeqList *PSeqList;
    
    
    //m        
    PSeqList createNullList_seq(int m)
    {
        PSeqList palist = (PSeqList)malloc(sizeof(struct SeqList));
        if(palist != NULL)
        {
            palist->element = (DataType *)malloc(sizeof(DataType)*m);
            if(palist->element)
            {
                palist->MAXNUM = m;
                palist->n = 0;
                return(palist);
            }
            else
            {
                free(palist);
            }
        }
        printf("out of space!
    "
    ); return NULL; } // 。 , FALSE int locate_seq(PSeqList palist, int x) { int q; for (q=0; qn; q++) { if (palist->element[q] == x) { return q; } } return FALSE; } // x int deleteV_seq(PSeqList palist, DataType x) { int p, q, flag=0; for(p=0; pn; p++) { q = locate_seq(palist, x); if (q) { flag = 1; deletesP_seq(palist, q, 1); break; } } if(flag == 0) { printf("
    "
    ); return TRUE; } return FALSE; } // x int deletesV_seq(PSeqList palist, DataType x) { int p, q, flag=0; for(p=0; pn; p++) { q = locate_seq(palist, x); if (q) { flag = 1; deletesP_seq(palist, q, 1); } } if(flag == 0) { printf("
    "
    ); return FALSE; } return TRUE; } // j k int deletesP_seq(PSeqList palist, int p, int k) { int q, i; if(p+k > palist->n) { printf("out of range
    "
    ); exit(0); } if(p == 0 && k == palist->n) { printf(" 。
    "
    ); exit(0); } for(i=0; iif(p<0 || p > palist->n) { printf("Not exist!
    "
    ); exit(0); } for(q=p; qn-1; q++) { palist->element[q] = palist->element[q+1]; } palist->n = palist->n-1; } return TRUE; } // void print(PSeqList palist) { int i; for(i=0; in; i++) printf("%d\t", palist->element[i]); printf("
    "
    ); } int main() { PSeqList lx_alist; int max,len,i,x,q; int temp; int j,k; printf("
    (<100):"
    ); scanf("%d",&max); lx_alist = createNullList_seq(max); for(i=0; i<10; i++) { lx_alist->element[i] = i+3; lx_alist->n++; } printf(" :
    "
    ); printf(" :
    "
    ); print(lx_alist); printf("

    "
    ); lx_alist->element[3] = 9; printf(" :
    "
    ); print(lx_alist); temp = 8; printf("
    %d
    "
    , temp); deleteV_seq(lx_alist, temp); printf(" :
    "
    ); print(lx_alist); temp = 9; printf("
    %d
    "
    , temp); deletesV_seq(lx_alist, temp); printf(" :
    "
    ); print(lx_alist); temp = 0; k = 7; printf("
    %d %d
    "
    , temp, k); deletesP_seq(lx_alist, temp, k); printf(" :
    "
    ); print(lx_alist); system("pause"); return 0; }

    좋은 웹페이지 즐겨찾기