추가 삭제 하고 삽입 할 수 있 는 선형 표 (2)

좋 은 하루 반 을 보 냈 습 니 다. 이 새로운 기능 을 추가 한 선형 표를 쓰 고 나 면 이불 을 걷 고 더 이상 말리 면 더 워 서 orz 를 덮 을 수 없습니다.
    이 어 지난번 기능 을 계속 추가 하 겠 습 니 다. 시간 이 지나 면 업데이트 하 겠 습 니 다. 테스트 함수 와 Bubble SortEx () 를 추가 하 겠 습 니 다. 자, 시작 하 겠 습 니 다. 먼저 각 함수 의 기능 을 소개 하 겠 습 니 다.
순서 표를 초기 화하 다
void SeqListInit(SeqList* seq); 
 순서 표 의 끝 에 요 소 를 삽입 합 니 다. 
void SeqListPushBack(SeqList* seq, SeqType value); 
순서 표 의 마지막 요 소 를 삭제 합 니 다. 
void SeqListPopBack(SeqList* seq); 
순서 표 앞 에 요 소 를 삽입 합 니 다.
void SeqListPushFront(SeqList* seq, SeqType value); 
순서 표 의 첫 번 째 요 소 를 삭제 합 니 다. 
void SeqListPopFront(SeqList* seq); 
순서 표 의 임의의 위치 에 있 는 요 소 를 가 져 옵 니 다.
SeqType SeqListGet(SeqList* seq, size_t pos, SeqType default_value); 
순서 표 에서 지정 한 위치의 값 을 설정 합 니 다.
void SeqListSet(SeqList* seq, size_t pos, SeqType value); 
순서 표 에서 지정 한 요소 의 아래 표 시 를 찾 습 니 다. 
size_t SeqListFind(SeqList* seq, SeqType value); 
 지정 한 위치 에 요 소 를 삽입 합 니 다. 
void SeqListInsert(SeqList* seq, size_t pos, SeqType value); 
 지정 한 위치의 요소 삭제
void SeqListErase(SeqList* seq, size_t pos); 
순서 표 에서 지정 한 값 을 삭제 합 니 다. 중복 요소 가 있 으 면 첫 번 째 만 삭제 합 니 다.
void SeqListRemove(SeqList* seq, SeqType to_delete); 
순서 표 의 모든 지정 한 값 을 삭제 합 니 다.
void SeqListRemoveAll(SeqList* seq, SeqType to_delete); 
순서 표 요소 갯 수 가 져 오기
size_t SeqListSize(SeqList* seq); 
순서 표 가 비어 있 는 지 여 부 를 판정 합 니 다.
int SeqListEmpty(SeqList* seq);
거품 정렬 
void SeqListBubbleSort(SeqList* seq); 
거품 정렬 
void SeqListBubbleSortEx(SeqList* seq, int (*cmp)(SType , SType)); 
코드 는 다음 과 같다.
seqlist.h
#pragma once

#include

#define SeqlistMaxSize 1000
typedef char SeqType;

typedef struct SeqListList{
	SeqListType data[SeqListMaxSize];
	size_t size;
}SeqList;

void SeqListInit(SeqList* seq);

void SeqListPushBack(SeqList* seqlist,SeqListType value);

void SeqListPopBack(SeqList* seqlist);

void SeqListPushFront(SeqList* seqlist,SeqListType value);

void SeqListPopFront(SeqList* seqlist)

size_t SeqListFind(SeqList* seq,SeqType value);

void SeqListInsert(SeqList* seq,size_t pos,SeqListType value);

void SeqListErase(SeqList* seqlist,size_t pos);

SeqType SeqListGet(SeqList *seqlist,size_t pos,SeqListType default_value);

void SeqListSet(SeqList* seqlist,size_t pos,SeqListType default_value);

void SeqListRemove(SeqList* seqlist,SeqListType to_delete);

void SeqListRemoveAll(SeqList* seqlist,SeqListType to_delete);

size_t SeqListSize(SeqList* seqlist);

int SeqListEmpty(SeqList* seqlist);

void SeqListBubbleSort(SeqList* seqlist);

void SeqListBubbleSortEx(SeqList* seqlist);

seqlist.c
#include
#include"seqlist.h"

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

void SeqListPushBack(SeqList* seqlist,SeqType){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size >= SeqListMaxSize){
		return;
	}
	++seqlist->size;
	seqlist->data[seqlist->size] = value;
	return;
}

void SeqListPopBack(SeqList* seqlist){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size == 0){
		return;//kong shunxubiao
	}
	--seqlist->size;
}


void SeqListPushFront(SeqList* seqlist,SeqType value){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size >= SeqlistMaxSize){
		return;
	}
	++seqlist->size;
	size_t i = seqlist->size -1;
	for(;i>0;i--){
		seqlist->data[i] = seqlist->data[i-1];
	}
	seqlist->data[0] = value;
	return;
}

void SeqListPopFront(SeqList* seqlist){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size == 0){
		return;//kongshunxubiao
	}
	size_t i = 0;
	for(;isize - 1;++i){
		seqlist->data[i] = seqlist->data[i+1];
	}
	--seqlist->size;
	return;
}

void SeqListInsert(SeqList* seqlist,size_t pos,SeqType value){
	if(seqlist == NULL){
		return;
	}
	if(pos > seqlist->size){
		return;//pos yuejie pos->[0,pos]
	}
	if(seqlist->size >= SeqListMaxSize){
		return;//shunxubiao yijing manle
	}
	if(pos == 0 ){
		SeqListPushFront(seqlist,value);
		return;
	}
	++seqlist->size;
	size_t i = seqlist->size - 1;
	for(;i - 1 >= pos;--i){
		seqlist->data[i] = seqlist->data[i - 1];
	}
	seqlist->data[pos] = value;
	return;
}

void SeqListErase(SeqList* seqlist,size_t pos){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size == 0){
		return;
	}
	if(pos >= seqlist->size){
		return;//yuejie
	}
	size_t i = pos;
	for(;isize - 1;++i){
		seqlist->data[i] = seqlist->data[i+1];
	}
	--seqlist->size;
	return;
}

SeqType SeqListGet(SeqList* seqlist,size_t pos,SeqType default_value){
	if(seqlist == NULL){
		return;
	}
	if(SeqList->size == 0){
		return;
	}
	if(pos >= seqlist->size){
		return pos;
	}
	return seqlist->data[pos];
}

void SeqListSet(SeqList* seqlist,size_t pos,SeqType default_value){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->size == 0){
		return;
	}
	if(pos >= seqlist->size){
		return;//yuejie
	}
	seqlist->data[pos] = value;
	return;
}

size_t SeqListFind(SeqList* seqlist,SeqType value){
	if(seqlist == NULL){
		return;
	}
	size_t i = 0;
	for(;i < seqlist->size;++i){
		if(value == seqlist->data[i]){
			return i;
		}
	}
	return (size_t)-1;
}

void SeqListRemove(SeqList* seqlist,SeqType to_delete){
	 if(seqlist == NULL){
		 return;
	 }
	 size_t i = 0;
	 for(;i < seqlist->size;++i){
		 if(seqlist->data[i] == to_delete){
			 for(;i < seqlist->size;++i){
				 seqlist->data[i] == seqlist->data[i+1];
			 }
		 }
		 break;
	 }
	 --seqlist->size;
	 return;
}

void SeqListRemoveAll(SeqList* seqlist,SeqType value){
	if(seqlist == NULL){
		return;
	}
	size_t i = 0;
	size_t j = 0
	for(;i < seqlist->size;++i){
		if(seqlist->data[i] == value){
			for(j = i;j < seqlist->size;++j){
				seqlist->data[j] == seqlist->data[j+1];
			}
		}
		--seqlist->size;
	}
	return;
}

size_t SeqListSize(SeqList* seqlist){
	if(seqlist == NULL){
		return NULL;
	}
	size_t i = 1;
	while(i <= seqlist->size){
		;
		++i;
	}
	return i;
}

int SeqListEmpty(SeqList* seqlist){
	if(seqlist == NULL){
		return;
	}
	if(seqlist->data[0] != NULL){
		return 0;
	}
	else{
		return 1;
	}
}

void SeqListBubbleSort(SeqList* seqlit){
	if(seqlit == NULL){
		return;
	}
	size_t i = 0;
	size_t j = 0;
	for(;i < seqlist->size;++i){
		for(j = i;j < seqlist->size;++j){
			SeqType value = 0;
			if(seqlist->data[i] > seqlist->data[i+1]){
				value = seqlist->data[i];
				seqlist->data[i] = seqlist->data[i+1];
				seqlist->data[i+1] = value;
			}
		}
	}
	return;
}
    좋아 하 는 친구 가 저 에 게 좋아요 나 댓 글 을 남 겨 주세요. 코드 에 오류 가 있 으 면 댓 글 에서 지적 해 주세요. 저 는 진지 하 게 의견 을 받 아들 이 겠 습 니 다. 읽 어 주 셔 서 감사합니다.

좋은 웹페이지 즐겨찾기