[프로그래머 면접 보전] 데이터 구조 기초 단일 체인 표: 생 성 | 길이 구하 기 | 삽입 | 삭제 | 정렬 | 인쇄 | 역 설정
#include #include
// : 1:typedef :http://blog.csdn.net/anton_6/article/details/6650726 typedef struct LineLink { int data; struct LineLink *next; }node; :typedef struct LineLink node;
// :
typedef struct LNode
{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
//
4. 567913. 주의: 1. 엄 서 에서 링크 구조 체 에 LineLink 유형의 일반 변수 와 포인터 변수 LineLink * 를 만 들 었 습 니 다. 여기 서 일반 변 수 를 만 들 고 지침 을 추가 할 때 정 의 를 내 리 는 것 을 말 합 니 다. 더욱 간편 합 니 다.
node *Creat()
{
node *head,*p,*s;// , ,
head=(node *)malloc(sizeof(node));//
p=head;//
int x,cycle=1;// x cycle
while(cycle)
{
scanf("%d",&x);//
if(x)
{
s=(node*)malloc(sizeof(node));//
s->data=x;
p->next=s;//
p=p->next;//
}
else
cycle=0;
}
p->next=NULL;//
return head;
}
2. , 。
//
void PRINT(node *p) { while(p->next!=NULL) { p=p->next; printf(" %d ",p->data); } }
//
int length(node *p) { int sum=0;p=p->next;// , 。 while(p) { sum++; p=p->next; } return sum; }
//
void insertnode(node *link,int n,int data) { node *p, *s; p=link; int sum=length(link); if(n<=0||n>sum+1)printf("error"); int i=0; while(i
{ p=p->next;i++; } s=(node *)malloc(sizeof(node)); s->data=data; s->next=p->next; p->next=s; } // : status ListInsert_L(LinkList &L,int i,ElemType e) LinkList Linelink* ,
void insertnode(node *&link,int n,int data) , ...C ... 。
//
void deletenode(node *link,int n) { node *p=link; int i=0; int sum=length(link); if(n<=0||n>sum)printf("error"); while(i
{ i++;p=p->next; } node *q=p->next; p->next=q->next; free(q); } // free;
// -
node *selectsort(node *link) { node *p,*q,*s;// , , int i,j,data;//data int n=length(link); , for(i=0,p=link->next;i
next)//p { s=p;//s , p for(j=i+1,q=p->next;j
next)// p if(s->data>q->data)s=q;//s data=s->data;// 。 s->data=p->data; p->data=data; } return link; }
//
node *reverse(node *link) { node *p1,*p2,*p3; p1=link->next; p2=p1->next; p1->next=NULL;// , while(p2) {
p3=p2->next;// , p2 , p2->next=p1;//p3 p2 next *** p1=p2;p2=p3; } link->next=p1; return link; }
// :http://blog.csdn.net/anton_6/article/details/6651496
//
void main() { node *link=Creat(); PRINT(link); insertnode(link,3,9); printf("
%d ",length(link)); PRINT(link); // printf("
"); // deletenode(link,2); // PRINT(link); // node *l=selectsort(link); //node *l=reverse(link); // PRINT(l); }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.