선형 표 알고리즘 구현
17533 단어 데이터 구조
linklist.h
//
// Linklist.h
// Test
//
// Created by Edong on 2018/10/27.
// Copyright © 2018 Edong. All rights reserved.
//
#ifndef Linklist_h
#define Linklist_h
#include
#include
#endif /* Linklist_h */
typedef int elemtype;
typedef struct node{
elemtype data;
struct node* next;
}*linklist;
// ,
linklist initlist(int arg[]){
int lenth=0;
for (; arg[lenth]!='\0'; lenth++);
if (lenth==0) return NULL;
linklist list=(linklist)malloc(sizeof(linklist));
list->data=arg[0];
list->next=NULL;
for (int i=lenth; i>1; i--) {
linklist p=(linklist)malloc(sizeof(linklist));
p->data=arg[i-1];
p->next=list->next;
list->next=p;
}
return list;
}
void printList(linklist L){
linklist p=L;
while(p!=NULL){
printf("%d,",p->data);
p=p->next;
}
}
//
void sortList(linklist a,linklist b){
int flag=0;
linklist copyB=b;
linklist copyA=a;
linklist copyA2=a;
while(copyB){
if(copyA->next==NULL&&(copyB->data)>(copyA->data)){
copyA->next=copyB;
break;
}
if (copyB->data==copyA->data) {
copyB=copyB->next;
continue;
}
if (copyB->data<copyA->data) {
if (flag==0) copyA=copyA->next;
copyA2->next=copyB;
copyB=copyB->next;
copyA2->next->next=copyA;
if (flag==0){
elemtype data=copyA2->data;
copyA2->data=copyA2->next->data;
copyA2->next->data=data;
flag=2;
copyA=copyA2->next;
continue;
}
copyA2=copyA2->next;
continue;
}
if(copyB->data>copyA->data){
copyA=copyA->next;
if (flag!=0)copyA2=copyA2->next;
else flag=1;
}
}
}
main.c
#include
#include "Linklist.h"
#define MAXSIZE 30
int main(int argc, const char * argv[]) {
int a[MAXSIZE]={1,3,5,7};
int b[MAXSIZE]={2,4,6,8,10} ;
linklist al=initlist(a);
linklist bl=initlist(b);
printf("
a :");
printList(al);
printf("
b :");
printList(bl);
printf("
b、a :");
sortList(al, bl);
printList(al);
printf("
");
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.