순서 표 초기 화, 삽입, 삭제
6256 단어 데이터 구조
#include
using namespace std;
// - - - - - - - -
#define LIST_INIT_SIZE 100 //
#define INCREMENT 10 //
#define ElemType char
typedef struct{
//
ElemType *elem; //
int length; //
int listsize; //
}SqList;
//
int InitList_Sq(SqList *L){
L->elem = (ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));//
if (L->elem == NULL)
return 0;
L->length = 0;
L->listsize = LIST_INIT_SIZE;
return 0;
}
int ListInsert_Sq(SqList *L, int i, ElemType e){
// L i e
if (i<1 || i>L->length + 1)
cout << "i " << endl;
if (L->length >= L->listsize){ // ,
ElemType *newbase = (ElemType *)realloc(L->elem, (L->listsize + INCREMENT)*sizeof(ElemType));
if (newbase = NULL){
cout << " " << endl;
return 0;
}
L->elem = newbase; //
L->listsize += INCREMENT;//
}
ElemType *q = &(L->elem[i - 1]);//q
for (ElemType *p = &(L->elem[L->length - 1]); p >= q; --p)
*(p + 1) = *p; //
*q = e; //
+L->length; // 1
return 1;
}
int ListDelete_Sq(SqList *L, int i, ElemType *e){
// i , e
if (i<1 || i>L->length + 1){ //i 1 length
cout << "i " << endl;
return 0;
}
ElemType *p = &(L->elem[i - 1]); //p
*e = *p; // p e
ElemType *q = L->elem + L->length - 1;//
for (++p; p <= q; ++p)
*(p - 1) = *p;
--L->length;
return 0;
}
int main(){
SqList L;
InitList_Sq(&L);
for (int i = 0; i < 22; i++)
ListInsert_Sq(&L, 1, 'a' + i);
ElemType e;
ListDelete_Sq(&L, 10, &e);
cout << " " << e;
for (int j = 0; j < L.length; j++)
cout << L.elem[j];
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.