赞
踩
- #include<iostream>
- #define _CRT_SECURE_NO_WARNINGS
- using namespace std;
- typedef int DATA;
-
- struct SNode //定义节点
- {
- DATA data;
- SNode* pNext;
- };
- class CList //创建一个链表类
- {
-
- SNode* m_hHead; //链表初始化
- char m_name[20];
-
- public:
- CList() //构造函数初始化链表
- {
- m_hHead = NULL;
- }
- void Setname(const char* p)
- {
- strcpy(m_name, p);
- }
-
- void AddHead(DATA data) //头部插入
- {
- SNode* p = new SNode; //创建新的节点
- p->data = data; //数据域
- p->pNext = m_hHead; //指针域
- m_hHead = p; //链表初始头
-
- }
- void AddTail(DATA data) //尾插入
- {
- SNode* pNew = new SNode; //创建新的节点
- pNew->data = data; //数据域
- pNew->pNext = NULL; //指针域
- if (!m_hHead) //没有头节点情况下
- {
- m_hHead = pNew; //将新创建节点设置为头节点
- return;
- }
- SNode* p = m_hHead; //防止异常
- while (p->pNext != NULL) //遍历到最后一个节点
- p = p->pNext;
- p->pNext = pNew;
- }
-
-
- int Delete(DATA data) //删除节点
- {
- SNode* p = m_hHead, *p1 = NULL;//*p1用来记录前一个节点地址
- if (!p)
- return 0;
- if (p->data == data) //当要删除节点为头节点的情况
- {
- m_hHead = p->pNext;
- free(p);
- return 1;
- }
- while (p)
- {
- if (p->data == data)
- {
- p1->pNext = p->pNext;
- free(p);
- return 1;
- }
- p1 = p;
- p = p->pNext;
- }
- }
-
- void Print() //打印节点
- {
- cout << m_name << endl;
- SNode* p = m_hHead;
- while (p)
- {
- cout << p->data << endl;
- p = p->pNext;
- }
- }
-
- void Modify(DATA data, DATA newData)//修改某处节点
- {
- SNode* p = m_hHead;
- while (p)
- {
- if (p->data == data)
- p->data = newData;
- p = p->pNext;
- }
- }
-
- int Find(DATA data) //查找节点
- {
- SNode*p = m_hHead;
- int i = 0; //用于返回当前节点查找到的位置
- while (p)
- {
- if (p->data == data)
- return i + 1;//代表成功,返回的位置
- p = p->pNext;
- ++i;
- }
- return -1;//代表失败
- }
-
- int GETLIST() //返回节点总数量
- {
- SNode* p = m_hHead;
- int i = 0;
- while (p)
- {
- i++;
- }
- return i;
- }
- };
-
-
-
- int main()
- {
- CList A,B;
- A.Setname("LIST1: ");
- A.AddHead(10);
- A.AddHead(9);
- A.AddHead(8);
- A.AddHead(7);
- A.AddHead(6);
- A.AddHead(5);
-
- B.Setname("LIST2: ");
-
- B.AddHead(4);
- B.AddHead(3);
- B.AddHead(2);
- B.AddHead(1);
- B.AddHead(0);
-
- A.Print();
- B.Print();
-
-
-
-
- system("pause");
- return 0;
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreBlack.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。