데이터 구조 - 선형 표 코드
16523 단어 데이터 구조데이터 구조 - 선형 표
#include <stdlib.h>
#include <stdio.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
//
#define LIST_INIT_SIZE 100
//
#define LISTINCREMENT 10
// Status ,
typedef int Status;
typedef int ElemType;
typedef struct {
//
ElemType *elem;
//
int length;
//
int listsize;
} SqList;
//
Status InitList_Sq(SqList &L) {
L.elem = (ElemType * )malloc(LIST_INIT_SIZE * sizeof(ElemType));
if(!L.elem) {
exit(OVERFLOW);
}
L.elem[0] = 1;
L.elem[1] = 2;
L.elem[2] = 3;
L.elem[3] = 4;
L.length = 4;
L.listsize = LIST_INIT_SIZE;
return OK;
}
//
Status ListInsert_Sq(SqList &L, int i, ElemType e) {
ElemType *newbase,*q,*p;
if(i < 1 || i > L.length + 1) {
return ERROR;
}
if(L.length >= L.listsize) {
newbase = (ElemType * )realloc(L.elem,
(L.listsize + LISTINCREMENT) * sizeof(ElemType));
if(!newbase) {
exit(OVERFLOW);
}
L.elem = newbase;
L.listsize += LISTINCREMENT;
}
q = &(L.elem[i - 1]);
for(p = &(L.elem[L.length - 1]); p >= q; --p) {
*(p + 1) = *p;
}
*q = e;
++L.length;
return OK;
}
//
Status ListDelete_Sq(SqList &L,int i,ElemType &e) {
ElemType *q,*p;
if((i < 1) || (i > L.length)) {
return ERROR;
}
p = &(L.elem[i - 1]);
e = *p;
q = L.elem + L.length - 1;
for(++p; p <= q; ++p) {
*(p - 1) = *p;
}
--L.length;
return OK;
}
//
int main() {
int i ;
int a;
SqList L;
InitList_Sq(L);
ListInsert_Sq(L, 1, 0);
ListDelete_Sq(L , 1 ,a);
for(i = 0;i < L.length;i++)
printf("%d\t",L.elem[i]);
printf("%d\t",a);
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에 따라 라이센스가 부여됩니다.