c 언어 선형 표 의 체인 표현 과 실현
6518 단어 C 언어 - 데이터 구조
/* */
#include
#include
#include
typedef struct node{
int data;
struct node *next;
}Node,*pNode;
//
pNode CreateListHead(void){
pNode L = (pNode)malloc(sizeof(Node));
if(!L)
exit(-1);
L->next = NULL;
return L;
}
//
void DisLinkList(pNode L)
{
pNode p = L->next;
while(p){
printf("%d ",p->data);
p = p->next;
}
}
//
int ListLength(pNode L){
pNode p = L->next;
int k = 0;
while(p){
p = p->next;
k++;
}
return k;
}
//
int GetElem(pNode L,int pos, int *e){
pNode p = L->next;
int i = 1;
while(p && i<pos){
p=p->next;
++i;
}
if(!p || i>pos){
return 0;
}
*e = p->data;
return 1;
}
//
int ListInsert(pNode L,int pos, int e){
pNode p = L;
pNode pNew;
int i = 1;
while(p&& i<pos){
p = p->next;
++i;
}
if(!p || i<pos)
return 0;
pNew = (pNode)malloc(sizeof(Node));
pNew->data = e;
pNew->next = p->next;
p->next =pNew;
return 1;
}
//
int ListDelete(pNode L,int pos ,int *e){
pNode p = L;
pNode q;
int i=1;
while(p->next && i<pos)
{
p = p->next;
++i;
}
if(!(p->next) || i>pos)
return 0;
q = p->next;
p->next = q->next;
*e = q->data;
free(q);
return 1;
}
int main(void){
pNode L;
int e,f,g;
int pos =7;
L = CreateListHead();
ListInsert(L,1,1);
ListInsert(L,2,2);
ListInsert(L,3,3);
ListInsert(L,4,4);
ListInsert(L,5,5);
ListInsert(L,6,6);
ListInsert(L,7,7);
printf("
");
DisLinkList(L);
printf("
");
GetElem(L,3,&e);
printf("%d
",e);
printf("
");
ListDelete(L,4,&f);
printf("%d
",f);
g=ListLength(L);
printf(" %d
",g);
return 0;
}
코드 가 비교적 간단 합 니 다. 지적 을 환영 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
c 언어 선형 표 의 체인 표현 과 실현코드 가 비교적 간단 합 니 다. 지적 을 환영 합 니 다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.