코린이... 이코드가 좀 이해가 안됩니다..
#include <stdio.h>
#include "ArrayList.h"
void ListInit(List * plist)
{
(plist->numOfData) = 0;
(plist->curPosition) = -1;
}
void LInsert(List * plist, LData data)
{
if(plist->numOfData > LIST_LEN)
{
puts("ÀúÀåÀÌ ºҰ¡´ÉÇմϴÙ.");
return;
}
plist->arr[plist->numOfData] = data;
(plist->numOfData)++;
}
int LFirst(List plist, LData pdata)
{
if(plist->numOfData == 0)
return FALSE;
(plist->curPosition) = 0;
*pdata = plist->arr[0];
return TRUE;
}
int LNext(List plist, LData pdata)
{
if(plist->curPosition >= (plist->numOfData)-1)
return FALSE;
(plist->curPosition)++;
*pdata = plist->arr[plist->curPosition];
return TRUE;
}
LData LRemove(List * plist)
{
int rpos = plist->curPosition;
int num = plist->numOfData;
int i;
LData rdata = plist->arr[rpos];
for(i=rpos; i<num-1; i++)
plist->arr[i] = plist->arr[i+1];
(plist->numOfData)--;
(plist->curPosition)--;
return rdata;
}
int LCount(List * plist)
{
return plist->numOfData;
}
질문.
1.하단부분 for문 에서 num-1 은 배열이 0번째 부터 시작해서 마이너스 1을해주는지?
2.배울때는 LN호출이 되었을때 위치정보가 반환된값이 지정되겠끔 해줘야한다고 배운거같은데(예시 [A,B,C,D,E] 에서 C가 삭제되면
위치정보는 B를 가리키게 해야한다고 들은거같은데 잘못 이해한걸까요?
Gpt실행결과 nurposition 값을 0으로 주고
실행하면 첫번째배열 은 삭제후 return되고 2번째배열부터 오른쪽 값으로 바뀌던데..