/*
*Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:项目4.cpp
*作 者:彭子竹
*完成日期:2015年10月12日
*版 本 号:v1.0
*
*问题描述:算法库包括两个文件:
头文件:dlinklist.h,包含定义顺序表数据结构的代码、宏定义、要实现算法的函数的声明;
源文件:dlinklist.cpp,包含实现各种算法的函数的定义
请采用程序的多文件组织形式,建立如上的两个文件,另外再建立一个源文件(如main.cpp),编制main函数,完成相关的测试工作。
*输入描述:无
*程序输出:调整后的链表
*/
cdlinklist.h头文件代码
#ifndef CDLINKLIST_H_INCLUDED
#define CDLINKLIST_H_INCLUDED
#include <stdio.h>
#include <malloc.h>
//循环双链表基本运算函数
typedef int ElemType;
typedef struct DNode //定义双链表结点类型
{
ElemType data;
struct DNode *prior; //指向前驱结点
struct DNode *next; //指向后继结点
} CDLinkList;
void CreateListF(CDLinkList *&L,ElemType a[],int n); //头插法建立循环双链表
void CreateListR(CDLinkList *&L,ElemType a[],int n); //尾插法建立循环双链表
void InitList(CDLinkList *&L); //初始化循环双链表
void DestroyList(CDLinkList *&L); //销毁
bool ListEmpty(CDLinkList *L); //判断是否为空
int ListLength(CDLinkList *L); //求链表长度
void DispList(CDLinkList *L); //输出链表
bool GetElem(CDLinkList *L,int i,ElemType &e); //取链表元素
int LocateElem(CDLinkList *L,ElemType e); //查找元素
bool ListInsert(CDLinkList *&L,int i,ElemType e); //插入节点
bool ListDelete(CDLinkList *&L,int i,ElemType &e); //删除节点
#endif // CDLINKLIST_H_INCLUDED
linklist.cpp文件代码
<span styl