연결 목록 기본 사항 1 (매우 간단)-길이 n의 단일 연결 목록 만들기

먼저 연결 목록이 무엇인지 이해합시다.
평신도의 용어로 링크드리스트는 일종의 체인 저장 구조입니다. 추상적으로 이해할 수 있고 철 체인으로 상상할 수 있습니다. 철 체인은 철 고리와 연동 링크로 구성되어 있지 않습니다! 그러면 각 후프를 하나라고 부를 수 있습니다 节点. 각 후프 에 두 개의 작은 상자를 부착하면 두 개의 작은 상자 중 하나 数据域를 각 노드의 데이터가 저장되는 장소 라고 하고 다른 하나를 다음 이라고 指针域합니다 . 노드 ( 铁环) 주소 의 위치입니다 . 그렇게 말하는 것은 다소 추상적 일 수 있습니다. 위의 그림을보세요.
44444에 사진 설명을 여기에 삽입하세요.
연결 목록의 노드는 다음과 같습니다. 아래에서 여러 노드를 연결하여 연결 목록을 만듭니다!
여기에 사진 설명 삽입
각 노드의 주소를 A, B, C로 설정했습니다. 첫 번째 노드의 포인터 필드는 두 번째 노드의 주소 B를 저장하고 두 번째 노드의 포인터 필드는 세 번째 노드의 주소를 저장합니다. 이런 식으로 각 노드가 하나로 합쳐지는 가장 단순한 연결 목록, 단일 연결 목록입니다.
코드 구현을 살펴 보겠습니다.
먼저 노드 표현을 살펴 보겠습니다 .

typedef struct lianbiao
{
    
    
        int date;//数据域
        struct lianbiao *pnext;//地址域
}link;

그런 다음 우리가해야 할 일은 후프처럼 연결하고 코드를 추가하는 것입니다.

#include <stdio.h>
#include <stdlib.h>

typedef struct lianbiao
{
    
    
        int date;
        struct lianbiao *pnext;
}link;
link *pnew;//新节点
link *phead;//头节点
link *ptemp;//临时节点
int count=1;
void creat(void);
void add(void);
int main()
{
    
    
    int n,i;
    printf("请输入所需要创建的链表长度,不可为0\n");
    scanf("%d", &n);
    creat();
    for(i=0;i<n-1;i++)
    {
    
    
        add();
    }
  printf("链表创建完毕,输出链表所有数据\n");

  //printf("%d ", phead->date);
  for(ptemp=phead;ptemp!=NULL;ptemp=ptemp->pnext)
   {
    
    
       printf("%d ", ptemp->date);
   }
   return 0;
}
void creat(void)//创建头节点
{
    
    
    phead=(link*)malloc(sizeof(link));
    phead->pnext=NULL;
    phead->date=0;
    //memset(link,0,sizeof(link));
}
void add(void)//添加节点
{
    
    
    pnew=(link*)malloc(sizeof(link));
    pnew->date=count;
    pnew->pnext=0;
    ptemp=phead;
    while(ptemp->pnext!=NULL)
    {
    
    
        ptemp=ptemp->pnext;
    }
    ptemp->pnext=pnew;
    //pnew=NULL;
    count++;
}

운영 결과 :
여기에 사진 설명 삽입
궁금한 점이 있으시면 댓글란에 글을 남겨 주시거나 비공개로 남겨주세요! 귀하의 검토에 감사 드리며 수정 및 전달을 환영합니다.

추천

출처blog.csdn.net/qq_42695024/article/details/109380517