데이터 구조 순서 표 의 간단 한 배열

4918 단어 데이터 구조
초기 화
인쇄 순서 표
끝 에 원 소 를 삽입 하 다.
첫 번 째 지정 요소 만 삭제
모든 지정 요소 삭제
순서 표 가 비어 있 는 지 판단 하기 빈 곳 으로 1 을 되 돌려 주 고 빈 곳 으로 0 을 되 돌려 주지 않 습 니 다. 
거품 정렬
#pragma once
#include 
#define SeqListMax 1000
#define TITLE printf("
==============%s==============
",__FUNCTION__); typedef char SeqType; typedef struct SeqList{ SeqType data[SeqListMax]; size_t size; }SeqList; void SeqListInit(SeqList* seq); // void SeqListPrint(SeqList *seq);// void SeqListPushBack(SeqList* seq, SeqType value); // void SeqListRemove(SeqList* seq, SeqType value); // void SeqListRemoveAll(SeqList* seq, SeqType value);// void SeqListBubbleSort(SeqList* seq); // size_t SeqListSize(SeqList* seq); // //void SeqListBubbleSortEx(SeqList* seq);//
#include "seqlist.h"



void SeqListInit(SeqList* seq)
{
    if(seq==NULL)
    return;
    seq->size=0;
}

void SeqListPrint(SeqList* seq)
{
    if(seq==NULL)
    return;
    size_t i = 0;
    for(;isize;i++)
    {
        printf("[%c] ",seq->data[i]);
    }
    printf("
"); } void SeqListPushBack(SeqList* seq, SeqType value) { if(seq==NULL) return; if(seq->size>=SeqListMax) { printf(" !
"); return; } seq->data[seq->size]=value; seq->size++; } void SeqListRemove(SeqList* seq, SeqType value) { if(seq==NULL) return; if(seq->size==0) // return; int i = 0; for(;isize;i++) { if(seq->data[i]==value) break; } for(;isize;i++) { seq->data[i]=seq->data[i+1]; } } void SeqListRemoveAll(SeqList* seq, SeqType value) { if(seq==NULL) return; if(seq->size==0) // return; int i = 0; int flag = 0; for(;isize;i++) { if(seq->data[i]==value) flag++; } for(i=0;isize==0) return 1; else return 0; } void swap(SeqType* a,SeqType* b) { SeqType x; x = *a; *a = *b; *b = x; } void SeqListBubbleSort(SeqList* seq) { if(seq==NULL) return; int i = 0; for(;isize;i++) { int j = 0; for(;jsize-1-i;j++) { if(seq->data[j]>seq->data[j+1]) swap(&seq->data[j],&seq->data[j+1]); } } } // // /// void TestSeqListInit() { TITLE; SeqList seq; SeqListInit(&seq); } void TestSeqListPushBack() { TITLE; SeqList seq; SeqListInit(&seq); SeqListPushBack(&seq,'a'); SeqListPushBack(&seq,'b'); SeqListPushBack(&seq,'c'); SeqListPushBack(&seq,'d'); SeqListPrint(&seq); } void TestSeqListRemove() { TITLE; SeqList seq; SeqListInit(&seq); SeqListPushBack(&seq,'a'); SeqListPushBack(&seq,'b'); SeqListPushBack(&seq,'b'); SeqListPushBack(&seq,'c'); SeqListPushBack(&seq,'d'); SeqListRemove(&seq,'b'); SeqListPrint(&seq); } void TestSeqListRemoveAll() { TITLE; SeqList seq; SeqListInit(&seq); SeqListPushBack(&seq,'a'); SeqListPushBack(&seq,'b'); SeqListPushBack(&seq,'b'); SeqListPushBack(&seq,'c'); SeqListPushBack(&seq,'d'); SeqListRemoveAll(&seq,'b'); SeqListPrint(&seq); } void TestSeqListSize() { TITLE; int i = 0; SeqList seq; SeqListInit(&seq); SeqListPushBack(&seq,'a'); SeqListPushBack(&seq,'b'); SeqListPushBack(&seq,'c'); SeqListPushBack(&seq,'d'); i = SeqListSize(&seq); printf("[%d]
",i); SeqListInit(&seq); i = SeqListSize(&seq); printf("[%d]
",i); } TestSeqListBubbleSort() { TITLE; SeqList seq; SeqListInit(&seq); SeqListPushBack(&seq,'d'); SeqListPushBack(&seq,'b'); SeqListPushBack(&seq,'c'); SeqListPushBack(&seq,'a'); SeqListPrint(&seq); SeqListBubbleSort(&seq); SeqListPrint(&seq); } int main() { TestSeqListInit(); TestSeqListPushBack(); TestSeqListRemove(); TestSeqListRemoveAll(); TestSeqListSize(); TestSeqListBubbleSort(); return 0; }




좋은 웹페이지 즐겨찾기