단사슬표의 관련 실현
SList.h
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<stdio.h>
using namespace std;
#pragma once
typedef int DataType;
struct Node
{
Node(const DataType& d)
:_data(d)
, _next(NULL)
{}
DataType _data;
struct Node* _next;
};
class SList
{
public:
friend ostream& operator<<(ostream& os, SList& s);
SList()
:_head(NULL)
, _tail(NULL)
{}
~SList()
{
if (_head == NULL)
return;
Node* cur = _head;
while (cur)
{
Node* del = cur;
cur = cur->_next;
delete del;
}
delete cur;
_head = NULL;
_tail = NULL;
}
public:
void PushBack(const DataType& d);
void PopBack();
void PushFront(const DataType& d);
void PopFront();
Node* Find(const DataType& d);
void Insert(Node* pos,const DataType& d);
private:
Node* _head;
Node* _tail;
};
#include"SList.h"
ostream& operator<<(ostream& os, SList& s)
{
if (s._head == NULL)
return os;
Node* cur = s._head;
while (cur!= NULL)
{
os << cur->_data << "->";
cur = cur->_next;
}
cout << "over" << endl;
return os;
}
void SList::PushBack(const DataType& d)
{
Node* newNode = new Node(d);
if (_head == NULL)//
{
_head = newNode;
_tail = _head;
}
else
{
_tail->_next = newNode;
_tail = newNode;
}
}
#include"SList.h"
int main()
{
SList slist1;
slist1.PushBack(1);
slist1.PushBack(2);
slist1.PushBack(3);
slist1.PushBack(4);
cout << slist1 << endl;
slist1.PopBack();
cout << slist1 << endl;
slist1.PopBack();
cout << slist1 << endl;
slist1.PopBack();
cout << slist1 << endl;
slist1.PopBack();
cout << slist1 << endl;
slist1.PopBack();
cout << slist1 << endl;
getchar();
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JSP 5강 - 액션태그, 자바빈클래스<%@ include %> => 디렉티브, 정적(내용이 고정) -파라미터 X <jsp: include> => 액션태그, 동적 - 파라미터O request 객체 -> request 클래스 존재(JSP에서 기본적으로 제...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.