데이터 구조 학습 - 링크 (단일 링크) 의 생 성과 옮 겨 다 니 기
5140 단어 데이터 구조
나 는 그 상세 한 설명 과 함께 나의 모든 블 로 그 를 쓸 것 이다!이런 형식 을 통 해 자신 에 게 도 도움 이 되 고 다른 사람 에 게 도 도움 이 되 기 를 바 랍 니 다.
데이터 구 조 를 공부 할 때 링크 는 중요 한 지식 점 으로 링크 를 잘 배우 면 후속 적 인 학습 에 좋 은 기반 을 다 질 것 이다.
배열 이 비교적 간단 해서 모두 가 일반적으로 파악 할 수 있다.링크 와 배열 의 공통점 은 둘 다 선형 데이터 구조 이다.링크 가 배열 과 다른 점 은 배열 의 데 이 터 는 메모리 에 연속 으로 저장 되 고 링크 의 노드 는 분 산 된 저장 이다.
링크 의 모든 노드 는 두 부분 을 포함한다. 데이터 도 메 인, 포인터 도 메 인 이다.데이터 도 메 인 은 이 노드 에 저 장 된 데 이 터 를 저장 하고 포인터 도 메 인 은 다음 노드 의 주 소 를 저장 합 니 다.이렇게 해서 두 개의 분 산 된 노드 사 이 는 앞의 노드 의 지침 역 을 통 해 연 결 된 것 이다.
다음은 링크 생 성 함수 및 스 트 리밍 함수 입 니 다.
# include
# include
# include
typedef struct node // ,data ,pNext
{
int data;
struct node * pNext;
}NODE, * PNODE; // typedef ,NODE struct node,PNODE struct node *
PNODE create_list(void); //
void traverse_list(PNODE pHead); //
int main(void)
{
PNODE pHead = NULL;
pHead = create_list();
traverse_list(pHead);
return 0;
}
PNODE create_list(void)
{
int len; //
int i;
int val;
PNODE pHead = (PNODE)malloc(sizeof(NODE)); //
if (NULL == pHead) //
{
printf(" , !");
exit(-1);
}
PNODE pTail = pHead; // pTail, pHead
pTail->pNext = NULL; // pTail NULL, pHead NULL
printf(" : len =");
scanf("%d", &len);
for (i=0; iprintf(" %d :", i+1);
scanf("%d", &val);
PNODE pNew = (PNODE)malloc(sizeof(NODE)); //
if (NULL == pNew)
{
printf(" , !");
exit(-1);
}
pNew->data = val; //
pTail->pNext = pNew; // pTail , pHead 。 ,
pNew->pNext = NULL; // NULL
pTail = pNew; // pTail, 。 pTail=pHew1 pTail=pHead, ,
}
return pHead;
}
void traverse_list(PNODE pHead)
{
PNODE p = pHead->pNext; //p
while (NULL != p)
{
printf("%d ", p->data); // :
p = p->pNext; // p p , printf
}
return;
}
체인 테이블 의 생 성 함수 에서 pTail 의 역할 은 중개 역할 을 하 는 것 과 같다. 새로운 노드 를 생 성하 고 이전 노드 와 연결 할 때 이전 노드 를 직접 조작 하지 않 고 pTail 을 통 해 조작 을 해서 pTail 의 역할 을 알 아야 체인 테이블 의 생 성 을 이해 할 수 있다.
이상 은 제 이해 입 니 다. 잘못된 부분 이 있 으 면 지적 을 환영 합 니 다. 만약 에 단일 체인 표를 만 드 는 것 에 대한 다른 이해 가 있다 면 서로 교류 하 는 것 을 환영 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.