您的位置:首页 > 编程语言 > C语言/C++

王桂林 C++基础与提高 练习题——类实现单向链表的封装

2018-08-26 16:15 99 查看

源码:

fhnClassList.h

[code]#ifndef _FHN_CLASS_LIST_
#define _FHN_CLASS_LIST_

#pragma once
struct Data
{
int a;
int b;
};

struct Node
{
Data d;
struct Node* next;
};

class fhnClassList
{
public:
fhnClassList(void);
void initList();
void insertList(Data data);
Node * searchList(Data data);
void travleList();
void destoryList();
~fhnClassList(void);

private:
Node * head;
};
#endif

fhnClassList.cpp

[code]#include "fhnClassList.h"
#include <iostream>
using namespace std;

fhnClassList::fhnClassList(void)
{
}

fhnClassList::~fhnClassList(void)
{
}
void fhnClassList::initList()
{
head = new Node;
head->next = nullptr;
}
void fhnClassList::insertList(Data data)
{
Node *cur = new Node;
cur->d = data;
cur->next = head->next;
head->next = cur;

}
Node * fhnClassList::searchList(Data data)
{
Node *t = head->next;
while(t)
{
if(t->d.a == data.a && t->d.b == data.b)
{
return t;
break;
}
}
return nullptr;
}
void fhnClassList::travleList()
{
Node * subHead = head->next;
while(subHead)
{
cout<<subHead->d.a<<endl;
cout<<subHead->d.b<<endl;
subHead = subHead->next;
}
}
void fhnClassList::destoryList()
{
Node *t = head;
head = head->next;
delete t;
}

main.cpp

[code]#include <iostream>
#include <string>
#include "fhnClassList.h"
using namespace std;

int main()
{
fhnClassList ls;
ls.initList();
for(int i=0;i<10;i++)
{
Data tmp;
tmp.a=i;
tmp.b=i;

ls.insertList(tmp);
}
ls.travleList();
ls.travleList();
ls.destoryList();
return 0;

}

 

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: