1.头文件datastru.h内容。
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int Status;
2.头文件listlink.h内容。
//单链表头文件
#include "datastru.h"
//定义元素类型int
typedef int ElemType;
typedef struct LNode {
ElemType data;
struct LNode* next;
} LNode, * LinkList;
//基本操作
void GreatListLink_F(LinkList& L, int n);//后插法
void GreatListLink_L(LinkList& L, int n);//前插法
Status InitListLink(LinkList& L);//链表初始化
Status DestroyList_L(LinkList& L);//销毁链表
Status InsertListLink(LinkList L, int i, ElemType e);//插入结点
Status DeleteListLink(LinkList L, int i, ElemType& e);//删除结点
void TranverseListLink(LinkList L);//遍历链表
int ListLength_L(LinkList L);//求表长
LinkList GetLastNode(LinkList L);//得到尾结点
LNode* MergeTwoLists(LinkList& La, LinkList& Lb);//递归归并
void MerListLinks(LinkList& La, LinkList& Lb);
void MergeListLink(LinkList& La, LinkList& Lb, LinkList& Lc);//归并
void sortList(LinkList& L);
void QuickSortList(LinkList pHead, LinkList pEnd);//排序
LinkList Partition(LinkList pBegin, LinkList pEnd);//快速排序
void reverseList(LinkList L);//逆置
3.程序文件listlink.cpp内容。
#include<iostream>
#include "datastru.h"
#include "listlink.h"
#include<stdlib.h>
#include<iomanip>
#include<math.h>
using namespace std;
//初始化链表
Status InitListLink(LinkList& L)
{
L = new LNode;
if (L == NULL)
return OVERFLOW;
L->next = NULL;
return OK;
}
//创建链表(后插法)
void GreatListLink_F(LinkList& L, int n)
单链表操作实现(代码)
最新推荐文章于 2023-08-03 10:26:19 发布