链表的特点
- 便于插入删除,这些操作只要改变指针的指向
- 遍历查找O(n)
- 排序复杂度也极大
- 所以适合插入删除频繁的程序。
实现思想
- 自建基本的节点数据结构
- 明确基本操作:初始化、插入、删除、按位置查找、按值查找等等
实现代码
#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
typedef void * ElemType;
typedef struct __ListNode{
ElemType data;
__ListNode* next;
}*LinkNode;
class LinkList{
public:
LinkList();
public:
void Init();
bool InsertAtLoc(ElemType, int);
ElemType FindAtLoc(int);
int FindLocByValue(ElemType);
int GetLength();
bool IsEmpty();
bool DeleteAtLoc(int);
void DestroyList();
private:
LinkNode head;
LinkNode tail;
int ListCount;
};
LinkList::LinkList() {
Init();
}
void LinkList::Init() {
head = (LinkNode)malloc(sizeof(struct __ListNode));
head->next = NULL