#include<iostream>
using namespace std;
struct Note
{
Note *Prev;
Note *Next;
int m_iData;
};
class MyListNote
{
public:
Note *m_pHead;
Note *m_pTail;
//判断链表是不是空
bool isEmpty() { return !m_pHead; };
int m_iCount;
//插入数据,包括头插,尾插,及任意位置插入
void insertDataAtNote(int index, int iData);
//随机删除一个数
void DeleteDataRandomNote(int index);
//改变任意链表上的数据
void ChangeDataAtNote(int index, int iData);
//寻找某个数出现的位置,及该数出现的次数
int FindDataAtNote(int iData,int & Num);
//从头到尾遍历输出
void showHeadToTailNote();
//从尾到头遍历输出
void showTailToHeadNote();
MyListNote() { m_pHead = m_pTail = nullptr; m_iCount = 0; };
};
void MyListNote::insertDataAtNote(int index, int iData)
{
if (isEmpty())
{
Note *pNote = new Note();
pNote->m_iData = iData;
pNote->Next = NULL;
m_pHead = m_pTail = pNote;
m_iCount++;
return;
}
if (index <= 1)
{
Note *pNote = new Note();
c++双向链表
最新推荐文章于 2023-07-20 14:37:17 发布