[꼭대기] 선형 표 의 기본 조작
#include "stdio.h"
#include "malloc.h"
#include "stdlib.h"
# define LIST_INIT_SIZE 100
# define LISTINCREMENT 10
# define TRUE 1
# define FALSE 0
# define OK 1
# define ERROR 0
# define INFEASIBLE -1
# define OVERFLOW -2
typedef int Status;
typedef int ElemType;
//
typedef struct {
ElemType * elem;//
int length ; // , 0
int listsize ;//
} SqList ;
//
Status InitList_Sq ( SqList *L) {
L->elem = ( ElemType * ) malloc
( LIST_INIT_SIZE * sizeof(ElemType) );
if ( ! L->elem ) exit(OVERFLOW) ;
L->length = 0 ;
L->listsize = LIST_INIT_SIZE ;
return OK ;
}
// i
Status Insert_sq(SqList *L,int i ,ElemType e){
int *newbase,*q,*p ;
// i
if(i<1||i>L->length) return ERROR ;
// ,
if(L->length>=L->listsize){
newbase = (ElemType*)realloc(L->elem,(L->listsize+ LISTINCREMENT)*(LISTINCREMENT));
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 ;
// e
*q = e ;//
++L->length;// 1
return OK;
}
// I , e
Status GetElem(SqList *L,int i ,ElemType e){
// i
int a ;
if((i<1)||(i>L->length+1)) return ERROR ;
for( a= 0 ;a<L->length-1;a++){
if(a==i){
e = L->elem[a] ;
break;
}
}
return e ;
}
//
Status Delete(SqList *L,int i ,ElemType e){
ElemType *p,*q;
if((i<1)||(i>L->length+1)) return ERROR ;
e = L->elem[i-1] ; // i e
p = &(L->elem[i-1]);//i
q = (L->elem) +(L->length-1) ;//
//
for(++p;p<=q;++p)
*(p-1) = *p;
--L->length;// 1
return OK;
}
int main()
{
Status InitList_Sq ( SqList *L );
SqList L;
int j=1;
int i;
int a ;
InitList_Sq ( &L );
//
for(i=1;i<=6;i++){
scanf("%d",&L.elem[i-1]);
++L.length;
}
//
for(j=1;j<=6;j++)
printf("%d",L.elem[j-1]);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.