挺久没写了,学的也很浅,如果写错了希望帮忙指正,谢谢!
Node.h
#include<iostream>
#ifndef NODE
#define NODE
using namespace std;
class Node
{
public:
int iValue;//default type is private
Node *next;
Node();
Node(int iVal):iValue(iVal),next(NULL){};
int iGetValue();
void vSetValue(int iValue);
//~Node();不能声明了不实现,会报错: 无法解析的外部符号 "public: __thiscall Node::~Node(void)" (??1Node@@QAE@XZ)……
};
#endif
Node.cpp
#include"Node.h"
int Node::iGetValue()
{
return this->iValue;
}
void Node::vSetValue(int iValue)
{
this->iValue = iValue;
}
Linklist.h
#include<iostream>
#include"Node.h"
#ifndef LINKLIST
#define LINKLIST
using namespace std;
class Linklist
{
Node *headNode;
Node *nextNode;
public:
Linklist();
void vAddNode(int iVal);
void vDeleteNode(int iVal);
void vShowNode();
~Linklist();
};
#endif
Linklist.cpp
#include"Linklist.h"
Linklist::Linklist()
{
Node *headNode = new Node(0);
this->headNode = headNode;
nextNode = headNode;
//delete head;
}
void Linklist::vAddNode(int iVal)
{
Node *newNode = new Node(iVal);
nextNode->next = newNode;
nextNode = newNode;
}
void Linklist::vDeleteNode(int iVal)
{
bool bIsVal;
Node *delNode;
Node *current = headNode;
bIsVal = false;
while(current->next != NULL)
{
if(current->next->iValue == iVal)
{
bIsVal = true;
delNode = current->next;
current->next = current->next->next;
delete delNode;
delNode = NULL;
break;
}
}
if(bIsVal)
{
cout << "删除成功" << endl;
}
else
{
cout << "不存在此值" << endl;
}
}
void Linklist::vShowNode()
{
Node *current = headNode;
while(current->next != NULL)
{
cout << current->next->iValue << " ";
current = current->next;
}
cout << endl;
}
Linklist::~Linklist()
{
Node *delNode;
while(headNode->next != NULL)
{
delNode = headNode;
headNode = headNode->next;
delete delNode;
delNode = NULL;
}
delete headNode; //创建时创建了一个
headNode = NULL;
nextNode = NULL;
}
Using.cpp
#include<iostream>
#include"Linklist.h"
using namespace std;
int main()
{
Linklist *link = new Linklist();
link->vAddNode(3);
link->vAddNode(5);
link->vDeleteNode(3);
link->vShowNode();
delete link;
link = NULL;
return 0;
}
分享到:
相关推荐
1. **C++**:C++是一种面向对象的编程语言,由Bjarne Stroustrup于1983年创建。它在系统编程、游戏开发、服务器端应用等领域广泛使用。C++强调性能、可移植性和灵活性,支持过程化、面向对象和泛型编程。 2. **Java...
03_用面向过程和面向对象方法求解圆形面积_类和对象的关系思考_传智扫地僧 04_类中不写成员函数易犯错误模型 05-易犯错误模型-为什么需要成员函数(补充资料)-传智扫地僧 06_课堂答疑类中写成员函数_调用的时才会执行...
1. 面向对象设计:C++的强项在于其支持面向对象编程,通过类和对象的设计,可以将现实世界的问题抽象为程序模型。在这个系统中,可能会有`客房`类,包含房间号、类型、价格等属性,以及预订、入住、退房等方法;还有...
2. **面向对象编程**:C++是面向对象的语言,书中可能深入讲解类、对象、继承、多态和封装等概念,以及如何设计和实现面向对象的程序。 3. **STL(Standard Template Library)**:C++的STL包含容器(如vector、...
通过C++,读者不仅能学习到抽象数据类型的概念,还能理解面向对象的设计原则,这对提升编程能力和软件工程素养至关重要。 书中的PDF文件可能包含每一章的详细讲解、实例代码、习题解析等内容。007.PDF可能是关于树...
- **面向对象的实践:** 通过C#语言实现数据结构,可以深入理解面向对象的设计原则和技术。 - **平台兼容性:** .NET Framework提供了广泛的API支持,使得基于C#的数据结构能够在多种平台上运行。 - **技术更新:** ...
3. C++编程基础:回顾C++的基本语法和面向对象特性,以便于理解和编写数据结构和算法的代码。 4. STL的使用:详细介绍如何利用STL容器和算法库提高代码的效率和可读性。 5. 实例分析:通过具体的实例,展示如何应用...
3. **面向对象编程**:作为高级阶段,S2可能会测试学员对面向对象编程的理解,包括类的定义、对象的创建、封装、继承、多态等概念。例如,题目可能要求设计一个简单的类结构,并实现特定的方法。 4. **数据结构**:...
综上所述,这份“期末复习资料”将涵盖计算机程序设计的基础知识、编程语言的使用、数据结构与算法的理解、面向对象编程的概念、软件工程原则等多个方面。通过系统的复习和实践,相信学生能够扎实掌握计算机程序设计...
数据结构和算法部分,大纲通常会要求考生理解并能运用简单的数据结构,如数组、链表、栈、队列,以及一些基础算法,如排序(冒泡排序、选择排序、快速排序等)、查找(线性查找、二分查找)等。这些知识在实际编程...
3. **面向对象编程**:在许多高级语言中,如Java和C#,面向对象编程(OOP)是核心概念。理解类、对象、继承、封装和多态性等概念,能帮助构建可维护、可扩展的代码。 4. **错误处理和调试**:学习如何处理运行时...
接下来,"最新JAVA编程题全集_50题及答案.doc"可能涵盖了更多实际编程场景中的问题,比如字符串处理、文件操作、数据结构(栈、队列、链表、树等)的应用,以及面向对象设计原则的实践。这些题目可能涉及如何使用...
为了辅助学习,推荐了多本教材和习题集,如严蔚敏的《数据结构》(C语言版)、李春保的《数据结构习题与解析》以及殷人昆的《数据结构辅导与提高》等,涵盖C++和面向对象的方法。 数据结构课程处于数学、计算机硬件...
2. **C++特性**:C++是C语言的扩展,引入了面向对象编程的概念,如类、对象、封装、继承和多态。课程将详细讲解这些特性,并通过实例展示它们在实际编程中的应用。 3. **数据结构**:这是课程的重点,数据结构是...
通过设计简单的算法,回顾Java的基本语法和面向对象的概念,可以帮助巩固理论知识并提升编程技能。\n\n学习Java不仅需要理解基础概念,还要能够应用这些知识解决实际问题。掌握数据结构和算法,是成为一名优秀Java...
首先,我们要了解C++的基础知识,它是面向对象的编程语言,具有高效性、灵活性和丰富的库支持。参赛者需要熟悉C++的基本语法,包括变量、常量、运算符、流程控制语句(如if-else、switch-case、for、while等)。此外...
- **面向对象**:理解类和对象的概念,知道如何进行封装、继承和多态。 - **集合框架**:熟悉ArrayList、LinkedList、HashMap等集合类的使用,理解它们的特点和应用场景。 - **异常处理**:了解何时使用try-catch-...