/*
=======================================================================
Name-- : Data Structures.c
Author : LuoT
Description : Double Linked List Base On Link
Date-- : 27-May-2017
=======================================================================
*/
#include <stdio.h>
#include <malloc.h>
#include <stdlib.h>
#include <stdbool.h>
#include <time.h>
typedef int ElemType;
typedef struct DNode {
ElemType data;
struct DNode *pNext, *pPrior;
} DLinkNode, *pDLinkList;
/*===function declaration============================================*/
pDLinkList CreateHead_LinkList(void);
pDLinkList CreateTail_LinkList(void);
bool IsEmpty_LinkList(pDLinkList pHead);
int Length_LinkList(pDLinkList pHead);
bool Insert_LinkList(pDLinkList pHead, int pos, ElemType val);
bool Delete_LinkList(pDLinkList pHead, int pos, ElemType *pVal);
void Traverse_LinkList(pDLinkList pHead);
void RevTraverse_LinkList(pDLinkList pHead);
pDLinkList GetElem_LinkList(pDLinkList pHead, int pos);
pDLinkList LocateElem_LinkList(pDLinkList pHead, ElemType e);
void InsertSort_LinkList(pDLinkList pHead);
void BubbleSort_LinkList(pDLinkList pHead);
void QuickSort_LinkList(pDLinkList pHead, pDLinkList end);
void SelectionSort_LinkList(pDLinkList pHead);
pDLinkList MergeSort_LinkList(pDLinkList pHead);
pDLinkList Merge(pDLinkList pLeftHead, pDLinkList pRightHead);
/*===function main===================================================*/
int main(void) {
setvbuf(stdout,NULL,_IONBF,0);//设置缓冲区为空
pDLinkList pHead;
pHead = CreateHead_LinkList();
Traverse_LinkList(pHead);
printf("");
RevTraverse_LinkList(pHead);
printf("");
MergeSort_LinkList(pHead);
Traverse_LinkList(pHead);
printf("");
RevTraverse_LinkList(pHead);
评论0
最新资源