링크 생 성, 삭제, 기본 작업 삽입
처음에 체인 테이블 의 구축 에 대해 이렇게 썼 고 기본적으로 두 번 의 malloc 함수 호출 을 사용 했다.코드 는 대체로 다음 과 같다.
// n
node *create(int n)
{
node *head,*precious,*current;
int cnt;
int label = 1;
for(cnt = 0;cnt < n;cnt++)
{
if(label == 1)
{
precious = (node *)malloc(sizeof(node));
printf("Input the information just like:name ID gender age
");
scanf("%s%s%s%d",precious->name,precious->ID,precious->s,&precious->age);
precious->link = NULL;
head = precious;
label = 0;
}
else
{
current = (node*)malloc(sizeof(node));
printf("Input the information just like:name ID gender age
");
scanf("%s%s%s%d",current->name,current->ID,current->s,¤t->age);
// current->link = NULL;
precious->link = current;
precious = current;
}
}
precious->link = NULL;
return head;
}
나중에 자 료 를 보고 많이 간소화 했다. 다음 과 같은 문법 은 제창 할 만하 다.
//
node *CreatLink(int n)
{
node *head,*p,*q;
for(int i=1; i<n+1; i++)
{
p = (node*)malloc(sizeof(node));
printf("input a number:");
scanf("%d",&p->data);
if(i == 1) head = p;
else q->next = p;
q = p;
p->next = NULL;
}
return head;
}
그 다음 에 언급 하고 자 하 는 것 은 삽입 과 삭제 작업 입 니 다. 두 가지 주의해 야 할 것 이 있 습 니 다. 먼저 삽입 이 든 삭제 든 첫 번 째 로 해 야 할 일 은 조작 할 위 치 를 찾 는 것 입 니 다.그 다음 에 작업 의 위 치 를 세 가지 상황 으로 나 누 어야 한다. 즉, 머리 결점, 중간 결점, 꼬리 결점 이다.
아래 코드 는 일부 자료 (예 를 들 어 프로그래머 면접 보전, 담 호 강의 책) 를 참고 했다.
삽입점
node *Insert(node *head,int num)
{
node *p,*q,*s;
s = (node*)malloc(sizeof(node));
printf("input a number:");
scanf("%d",&s->data);
p = head;
// ,
while(p->data < s->data && p->next != NULL)
{
q = p; p = p->next;
}
if(p == head) {head = s; p = s->next;}
else if(p->next == NULL) { p->next = s; s->next = NULL; }
else { q->next = s; s->next = p; }
return head;
}
결점 삭제: (끝 점 과 중간 결점 절 차 를 하나 로 합 칠 수 있 습 니 다)
node *Delete(node *head,int num)
{
node *p,*q;
p = head;
//
while(p->data != num && p->next != NULL)
{
q = p; p = p->next;
}
if(num == p->data)
{
if(p == head) { head = p->next; free(p); }
else { q->next = p->next; free(p); }
}
else
printf("%d could not been found",num);
return head;
}
마지막 으로 간단하게 체인 테이블 정렬, 체인 테이블 정렬 을 소개 합 니 다. 정렬 에 중점 을 두 고 지침 에 대한 조작 이 적 습 니 다.정렬 에 사용 되 는 것 은 거품, 직접, 선택 등 몇 가지 전형 적 인 정렬 알고리즘 일 뿐이다.제 개인 적 인 경험 을 통 해 순 위 는 면접 필기시험 에 도 중점 이 고 거의 물 어 볼 수 있 습 니 다.
다음은 거품 법 으로 쓴 링크 정렬 입 니 다.
node *Sort(node* head,int length)
{
node *p;
for(int i = 1; i < length ; i++)
{
p = head;
for(int j = 0; j < length - i ; j++)
{
if(p->data > p->next->data)
{
int tmp = p->data;
p->data = p->next->data;
p->next->data = tmp;
}
p = p->next;
}
}
return head;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.