데이터 구조 - 단일 체인 시트 의 생 성, 찾기, 삽입, 삭제 작업
19725 단어 데이터 구조
#include
#include
typedef struct LNode{
int data; //
struct LNode *next; //
}LNode,*LinkList;
// :
LinkList List_HeadInsert(LinkList &L){
LNode *s;int x;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
scanf("%d",x);
while(x!=-1)
{
s=(LNode*)malloc(sizeof(LNode));
s->data=x;
s->next=L->next;
L->next=s;
scanf("%d",x);
}
return L;
}
// :
LinkList List_TailInsert(LinkList &L){
LNode *s,*r;int x;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
r=L;
scanf("%d",x);
while(x!=-1){
s=(LNode*)malloc(sizeof(LNode));
s->data=x;
s->next=r->next;
r->next=s;
r=s;
scanf("%d",x);
}
return L;
}
//
LNode *GetElem(LinkList L,int i){
if(i=0){
return L;
}
if(i<0){
return NULL;
}
int j=1;
LNode *p=L->next;
while(j<i&&p){
p=p->next;
j++;
}
return p;
}
//
LNode *LocateElem(LinkList L,int e){
LNode *p=L->next;
while(p&&p->data!=e){
p=p->next;
}
return p;
}
// ( )( i-1
LinkList Insert1(LinkList L,int i,int e){
LNode *p,*s;
s=(LNode*)malloc(sizeof(LNode));
p=GetElem(L,i-1);
s->next=p->next;
p->next=s;
s->data=e;
return L;
}
// ( )
LinkList Insert2(LinkList L,int i,int e){
LNode *p,*s;
p=GetElem(L,i-1);
s=(LNode*)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
int temp=p->data;
p->data=s->data;
s->data=temp;
return L;
}
//
LinkList Delete(LinkList &L,int i){
LNode *p,*q;
p=GetElem(L,i-1);
q=p->next;
p->next=q->next;
free(q);
}
// L, ?
LinkList Inverse(LinkList L){
LinkList L1;
L1=(LinkList)malloc(sizeof(LNode));
L1->next=NULL;
LNode *s,*t;
int x;
t=L;
while(t->next){
t=t->next;
x=t->data;
s=(LNode*)malloc(sizeof(LNode));
s->data=x;
s->next=L1->next;
L1->next=s;
}
return L1;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.