데이터 구조 선형 표 의 체인 저장 (순수 코드)
#include
#include
#define ERROR 0
#define OK 1
#define TRUE 1
#define FALSE 0
typedef int datatype;//
typedef int status;//
typedef struct Node{
datatype data;
struct Node *next;
}Node;
typedef struct Node *LinkList;// linklist
//
status initlist(LinkList *L){
*L = (LinkList)malloc(sizeof(Node));
if(!(*L)){
return ERROR;
}
(*L)->next = NULL;
return OK;
}
//
status ClearList(LinkList *L){
LinkList p,q;
p = (*L)->next;
while(p){
q = p->next;
free(p);
p = q;
}
(*L)->next = NULL;
return OK;
}
//
int ListLength(LinkList L){
int i=0;
LinkList p = L->next;
while(p){
i++;
p = p->next;
}
return i;
}
//
void CreateListHeader(LinkList *L,int n){
LinkList p;
int i;
(*L)->next = NULL;
for(i=0;i<n;i++){
p = (LinkList)malloc(sizeof(Node));
p->data = i;
p->next = (*L)->next;
(*L)->next = p;
}
}
//
void CreateListTail(LinkList *L,int n){
LinkList p,r;
int i;
*L = (LinkList)malloc(sizeof(Node));
r = *L;
for(i=0;i<n;i++){
p = (LinkList)malloc(sizeof(Node));
p->data = i;
r->next = p;
r = p;
}
r->next = NULL;
}
//
status GetElem(LinkList L,int i,datatype *e){
LinkList p;
int j = 1;
p = L->next;
while(p&&j<i){
p = p->next;
++j;
}
if(!p||j>i){
return ERROR;
}
*e = p->data;
return OK;
}
//
status DelElem(LinkList *L,int n){
LinkList p,q;
p = *L;
int j = 1;
while(p->next&&j<n){
p = p->next;
++j;
}
if(!(p->next)||j>n){
return ERROR;
}
q = p->next;
p->next = q->next;
free(q);
return OK;
}
//
status InsertList(LinkList *L,int n,datatype x){
int i=1;
LinkList p,q;
p = *L;
while(p->next&&i<n){
p = p->next;
++i;
}
if(!(p->next)||i>n){
return ERROR;
}
q = (LinkList)malloc(sizeof(Node));
q->next = p->next;
p->next = q;
return OK;
}
int main(){
LinkList L;
initlist(&L);
int length;
CreateListHeader(&L,10);
length = ListLength(L);
printf("( ) :%d
",length);
ClearList(&L);
length = ListLength(L);
printf(" :%d
",length);
CreateListTail(&L,10);
length = ListLength(L);
printf("( ) :%d
",length);
//
datatype num;
GetElem(L,5,&num);
printf(" :%d
",num);
//
DelElem(&L,4);
length = ListLength(L);
printf(" :%d
",length);
//
InsertList(&L,4,3);
length = ListLength(L);
printf(" :%d
",length);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
선형 표 (데이터 구조 가 엄격 하고 민감 하 다)텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.