데이터 구조 c 코드 구현 순서 표 01
- #define OK 1
- #define ERROR 0
- #define INFEASIBLE -1
- #define OVERFLOW -2
-
- typedef int Status;
- typedef enum
- {
- FALSE,
- TRUE
- }BOOL;
:
-
- #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
- 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->length=0;
- L->listsize=LIST_INIT_SIZE;
- return OK;
- }
-
- /* */
- Status ListInsert_Sq(SqList *L,int i,ElemType e){
- ElemType *q,*p,*newbase;
- if (i<1||i>L->length+1) return ERROR; /*i [1,n+1 ]*/
- 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]);
-
- /* i n */
- 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 *p,*q;
- 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;
- }
-
-
- /* */
- void ClearList_Sq(SqList *L)
- {
- L->length=0;
- }
-
- /* */
- BOOL ListEmpty_Sq(SqList *L)
- {
- return L->length==0?TRUE:FALSE;
- }
-
- /* */
- int ListLength(SqList *L)
- {
- return L->length;
- }
-
- /* i */
- Status GetElem_Sq(SqList *L,int i,ElemType *elem)
- {
- if(i<1 || i>L->length)
- return OVERFLOW;
- *elem=L->elem[i-1];
- return OK;
- }
- int main(int argc,char* argv[]){
SqList Lst; - int i,n=10;
ElemType e; - if (InitList_Sq(&Lst)==OK){
for(i=1;i<=n;i++) - if(ListInsert_Sq(&Lst,i,(ElemType)i)!=OK) break;
printf(""); - for (i=0;i
printf("i,e=%d,%d",i,Lst.elem[i]); - getch();
if (ListDelete_Sq(&Lst,5,&e)==OK){ - printf("delete_elem=%d",(int)e);
getch(); - for (i=0;i
printf("i,e=%d,%d",i,Lst.elem[i]); - }
} - getch();
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에 따라 라이센스가 부여됩니다.