彩钢做网站能赚钱吗,中国建设安全协会网站,建筑八大员培训机构,网站建设课程论文由于双链表中大部分操作其实和单链表操作类似#xff0c;所以这里只挑关键的一些函数 1、定义与初始化
typedef struct DNode
{ElementType data;struct DNode *prior,*next;
}DNode,*DLinkList;bool InitialDLinkList(DLinkList L){L (DNode *)malloc(sizeof(DNode));…由于双链表中大部分操作其实和单链表操作类似所以这里只挑关键的一些函数 1、定义与初始化
typedef struct DNode
{ElementType data;struct DNode *prior,*next;
}DNode,*DLinkList;bool InitialDLinkList(DLinkList L){L (DNode *)malloc(sizeof(DNode));if (LNULL){return false;}L-prior NULL;L-next NULL;return true;}
2、在某结点添加和删除后继结点
bool InsertNextDNode(DNode *p,DNode *s){//在p结点添加后继结点if (pNULL||sNULL){return false;}s-next p-next;if (p-next!NULL){p-next-priors;}s-prior p;p-next s;return true;
}bool DeletNextDNode(DNode *p){//删除p的后继结点if(pNULL) return false;DNode *q p-next;if (qNULL) return false;p-next q-next;if (q-next!NULL)q-next-priorp;free(q);return true;}
3、摧毁整个双链表
oid DestroyDLinkList(DLinkList L){while (L-next!NULL){DeletNextDNode(L);}free(L);LNULL;
}
4、打印链表包括打印整个链表和从某个结点开始前向或者后向打印
void print(DLinkList L){DNode *p L-next;while(p-next!NULL){printf(%d,p-data);pp-next;}
}void print_next(DNode *p){while(p-next!NULL){printf(%d,p-data);pp-next;}
}void print_prior(DNode *p){while(p-prior!NULL){printf(%d,p-data);pp-prior;}
} 本文由博客一文多发平台 OpenWrite 发布