선형 표 의 양 방향 링크 저장 구조
1715 단어 데이터 구조
#include
#include
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef int Status;
typedef struct LNode{
ElemType data;
struct LNode *next;
struct LNode *prior;
}DNode,*DLinkList;
void CreateList_L(DLinkList *L,int n);
Status GetElem_L(DLinkList L,int i,ElemType *e);
Status ListInsert_L(DLinkList L,int i,ElemType e);
int main(int argc, const char * argv[]) {
DLinkList L,p;
CreateList_L(&L, 5);
int e=3;
ListInsert_L(L,2,e);
p=L->next;
while (p) {
printf("%d ",p->data);
p=p->next;
}
return 0;
}
void CreateList_L(DLinkList *L,int n){
(*L)=(DLinkList)malloc(sizeof(DNode));
(*L)->next=NULL;
(*L)->prior=NULL;
DLinkList p;
for (int i=n; i>0; --i) {
p=(DLinkList)malloc(sizeof(DNode));
scanf("%d",&p->data);
p->next=(*L)->next;
if ((*L)->next != NULL)
(*L)->next->prior=p;
(*L)->next=p;
p->prior=(*L);
}
}
Status GetElem_L(DLinkList L,int i,ElemType *e){
DLinkList p=L->next;
int j=1;
while (p&&jnext;++j;
}
if(!p||j>i)
return ERROR;
*e = p->data;
return OK;
}
Status ListInsert_L(DLinkList L,int i,ElemType e){
DLinkList p=L,s;
int j=0;
while (p&&jnext;
++j;
}
if(!p||j>i-1)
return ERROR;
s=(DLinkList)malloc(sizeof(DNode));
s->data=e;
s->next=p->next;
if (p->next != NULL)
p->next->prior=s;
p->next=s;
s->prior=p;
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에 따라 라이센스가 부여됩니다.