데이터 구조 - 순서 표 삽입
2321 단어 데이터 구조
데이터 구 조 를 복습 하기 시 작 했 을 때 힘 들 었 습 니 다. 기초 가 좋 지 않 고 모 르 는 점 이 많 았 습 니 다. 다행히 인내심 이 좋 은 블 루 친구 (헌화) 가 있 었 습 니 다. 아직 잘 모 르 겠 지만 계속 공부 하면 반드시 먹구름 을 헤 칠 것 이 라 고 믿 습 니 다.
지식 점: malloc 함수 원형: extern void * malloc (unsigned int num bytes)
realloc 함수 원형: extern void * realloc (void * mem address, unsigned int newsize), void * memaddress 는 메모리 크기 를 바 꾸 려 는 포인터 이름 을 표시 합 니 다. 즉, 어떤 포인터 가 가리 키 는 메모리 인지 바 꾸 려 는 것 입 니 다. unsigned int newsize 는 할당 할 새로운 크기 (원래 크기 보다 커 야 함) 를 말 합 니 다.
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#define LISTINCREASE 10
#define N 5
typedef struct
{
int* BASE; //
int LISTSIZE; // *4
int LENGTH; //
// 。
} LIST;
void INIT_LIST(LIST* list)
{
list->LISTSIZE = 200;
list->BASE = (int*)malloc(sizeof(int) * list->LISTSIZE);
list->LENGTH = 0;
}
/*******
void CREAT(LIST *list, int a[], int n)
{
int i;
for (i = 0; i < n; i++)
list->BASE[i] = a[i];
list->LENGTH = n;
}
************/
void LISTINSERT(LIST* list, int i, int e)
{
int index; // ,
if (i < 1 || i>list->LENGTH + 1)
return;
if (list->LENGTH > list->LISTSIZE)
{
list->BASE = (int *)realloc(list->BASE, (list->LISTSIZE + LISTINCREASE)*sizeof(int));
if (!list->BASE)
return;
list->LISTSIZE = list->LISTSIZE + LISTINCREASE;
}
for (index = list->LENGTH-1; index >= i - 1; index--)
{
list->BASE[index+1] = list->BASE[index];
}
list->BASE[i-1] = e;
list->LENGTH++;
}
/******
void PRINT(LIST* list)
{
int i;
for (i = 0; i < list->LENGTH; i++)
printf("%d ", list->BASE[i]);
printf("
");
}
************/
int main()
{
LIST mylist;
//mylist = NULL; LIST mylist LIST*mylist , , , 。
//mylist = (LIST*)malloc(sizeof(LIST));
INIT_LIST(&mylist);
for (int i = 0; i < N; i++)
{
scanf("%d", &mylist.BASE[i]);
mylist.LENGTH++; // , LENGTH 0, LENGTH 1
}
//CREAT(&mylist, a, 5);
LISTINSERT(&mylist, 3, 66);
//PRINT(&mylist);
for (int i = 0; i < N+1; i++)
{
printf("%d ", mylist.BASE[i]);
}
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에 따라 라이센스가 부여됩니다.