선형 표 의 기본 조작 및 응용 (단일 체인 표 의 생 성, 삽입, 삭제, 찾기, 표시)
22344 단어 데이터 구조
#include
#include
#define OK 1
#define ERROR 0
typedef int Status;
typedef float ElemType;
//
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
//
Status CreatList_L(LinkList &L,int n)
{// n
LNode *p;
int i;
L=(LinkList) malloc(sizeof(LNode));
L->next=NULL;
for(i=n;i>0;--i)
{
p=(LinkList)malloc(sizeof(LNode));
scanf("%f",&p->data);
p->next =L->next;
L->next=p;
}
}
//
Status ListInsert_L(LinkList &L,int i,ElemType e)
{
LNode *p,*s;
int j;
p=L;
j=0;
while(p&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j<i-1)
return ERROR;
s=(LinkList)malloc(sizeof(LNode));
s->data =e;
s->next=p->next;
p->next=s;
return OK;
}
//
Status ListDelet_L(LinkList &L,int i,ElemType &e)
{
LNode *p,*q;
int j;
p=L;
j=0;
while (p->next&&j<i-1)
{
p=p->next;
++j;
}
if(!p||j>i-1)
return ERROR;
q=p->next;
p->next=q->next;
e=q->data;
free(q);
return OK;
}
//
Status GetElem_L(LinkList L,int i,ElemType &e)
{
LNode *p;
int j;
p=L;
j=0;
while(p&&j<i)
{
p=p->next;
++j;
}
if(!p||j>i)
return ERROR;
e=p->data ;
return OK;
}
//
void ListPrint_L(LinkList L,int n)
{
LNode *p;
int i;
p=L->next;
for(i=0;i<=n;i++)
{
printf("%f ",p->data);
p=p->next;
}
}
//
void ListPrint_L(LinkList L)
{
LinkList p;
p=L->next;
while(p!=NULL)
{
printf("%f ",p->data);
p=p->next;
}
printf("
");
}
main()
{
LinkList L;
Status i,n,flag,k;
ElemType e;
printf(" :");
scanf("%d",&n);
printf(" :
");
CreatList_L(L,n);
printf(" :1.
2.
3.
4.
");
for(k=0;;k++)
{
printf("
:");
scanf("%d",&flag);
if(flag==1)
{
printf("
");
scanf("%d %f",&i,&e);
ListInsert_L(L,i,e);
ListPrint_L(L);
}
if(flag==2)
{
printf("
");
scanf("%d",&i);
ListDelet_L(L,i,e);
printf(" :%f
",e);
ListPrint_L(L);
}
if(flag==3)
{
printf("
");
scanf("%d",&i);
GetElem_L(L,i,e);
printf(" :%f
",e);
}
if(flag==4)
break;
}
return OK;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.