데이터 구조 (C 언어) 단일 체인 테이블 기초 첨삭 검사
1. 단일 체인 시계 가 무엇 입 니까?
단 방향 링크 (또한 명단 링크, 선형 링크) 는 링크 의 하나 로 링크 의 링크 방향 이 단 방향 이 고 링크 에 대한 방문 은 머리 부터 시작 하여 순서대로 읽 어야 한 다 는 것 이 특징 이다.wikipedia
첫 번 째 노드 에서 data 영역 이 비어 있 고 끝 노드 에서 가리 키 는 주 소 는 NULL 로 초기 화 되 는 것 이 특징 입 니 다.
2. 싱글 체인 시트 의 용도
단일 체인 표 의 기능 은 순서 표 와 비슷 하지만 서로 다른 상황 에서 알고리즘 의 시간 복잡 도 (이 알고리즘 이 이론 적 으로 실 행 된 시간 을 묘사 한 것) 는 크게 다르다.수정 데 이 터 를 찾 거나 데 이 터 를 읽 을 때 순서 표 가 큰 우 위 를 차지 하지만 삭제 작업 을 할 때 링크 는 우 위 를 차지한다. 이 유 는 삭제 할 때 순서 표 에서 증가 하거나 삭제 한 요소 후의 모든 요 소 는 뒤로 물 러 나 거나 앞으로 나 아가 순서 가 정확 해 야 하기 때문이다. 그리고 링크 는 구조 적 으로 하늘 에서 태 어 날 때 뒤의 요 소 를 움 직 이지 않 아 도 되 기 때문이다.주위 의 하나 또는 두 노드 의 지침 만 수정 하면 삭제 작업 을 완성 할 수 있 고 cpu 가 연산 하 는 시간 을 크게 줄 일 수 있 습 니 다.
3. 싱글 체인 시트 의 기본 조작
1. 싱글 체인 시트 만 들 기
단일 체인 표를 만 드 는 데 는 두 가지 흔히 볼 수 있 는 방식 이 있 습 니 다. 헤드 삽입 법 (헤드 노드 는 새로운 노드 를 계속 연결 합 니 다) 과 꼬리 삽입 법 (원래 링크 뒤에 노드 를 직접 추가 합 니 다) 주의: 헤드 삽입 법 은 입력 한 요소 와 출력 하 는 요소 의 순서 가 반대 되 고 꼬리 삽입 법 이 만 든 링크 는 정상 적 인 순서에 따라 출력 합 니 다.
1.1 헤드 삽입 법
//
void Createlist_Head(LinkList &L,int n)
{
LNode *p;
int i = 0;
L = (LinkList)malloc(sizeof(LNode));//
L->next = NULL; //
for(i = n;i>0;--i)
{
p = (LinkList)malloc(sizeof(LNode));//
scanf("%d",&p->data);
p->next = L->next;
L->next = p;
}
//
}
1.2 꼬리 삽입 법
//
void Createlist_Tail(LinkList &L,int n)
{
LNode *p,*q;
int i = 0;
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
q = L;
for(i;idata);
q->next = p;
q = p;
}
//
p->next = NULL;//
}
2. 싱글 체인 시트 의 증가 (삽입)
//
int Insert(LinkList &L,int n,int m)
{
LNode *p = NULL,*q = NULL;
int i = 0;
p = L;
while(p->next!=NULL&&inext;
i++;
}
if(i=n-1)
{
q = (LinkList)malloc(sizeof(LNode));
q->data = m;
q->next = p->next;
p->next = q;
}
return OK;// 1 OK
}
3. 단일 링크 노드 삭제
//
//
int Delete(LinkList &L,int n)
{
LNode *p,*q;
p = L;
int i = 0;// p n
while(p->next!=NULL&&inext;//q
p->next = q->next;//p
free(q);//
}
p = p->next;// i n
}
return OK;
}
4. 단일 링크 가 지정 한 위치 에 대한 데이터 조회
//
// int
int Getelem(LinkList L,int n)
{
LNode *p;//
p = L;//
int i = 0;//
//
while(p->next->data != n&&p->next!=NULL)
{
p = p->next;
i++;
}
if(p->next->data == n)//
printf("
%d
",i);
return OK;
}
5. 출력 데이터
//
void PrintElem(LinkList L)
{
LinkList p = L->next;//
while(p)//
{
printf("%5d",p->data);//
p = p->next;//
}
}
다음은 주 함수 전달 파 라 메 터 를 써 서 호출 하면 됩 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.