⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listexample.cpp

📁 MFC 函数实用手册 MFC 函数实用手册
💻 CPP
字号:
// ListExample.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "ListExample.h"
#include "afxtempl.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// 唯一的应用程序对象

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
	int nRetCode = 0;

	// 初始化 MFC 并在失败时显示错误
	if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
	{
		// TODO: 更改错误代码以符合您的需要
		_tprintf(_T("致命错误:MFC 初始化失败\n"));
		nRetCode = 1;
	}
	else
	{
		// TODO: 在此处为应用程序的行为编写代码。
		CList<int, int> myList;
		
		// 初始化链表数值
		for(int i=3;i<=5;i++)
			myList.AddHead( i );
		
		// 输出当前链表头和链表尾的数值
		_tprintf( "链表的头元素数值为:%d\n", myList.GetHead() );
		_tprintf( "链表的尾原是数值为:%d\n\n", myList.GetTail() );

		// 在链表尾添加数据
		for(i=2;i>0;i--)
			myList.AddTail( i );

		// 输出当前链表头和链表尾的数值
		_tprintf( "链表的头元素数值为:%d\n", myList.GetHead() );
		_tprintf( "链表的尾原是数值为:%d\n\n", myList.GetTail() );

		_tprintf( "删除当前链表的首元素。");
		
		// 删除当前链表的首元素。
		myList.RemoveHead();
		_tprintf( "当前链表的头元素数值为:%d\n", myList.GetHead() );

		_tprintf( "删除当前链表的末元素。");

		// 删除当前链表的末元素。
		myList.RemoveTail();
		_tprintf( "当前链表的尾元素数值为:%d\n\n", myList.GetTail() );

		// 按从链表头到链表尾的顺序输出链表中所有元素数值
		_tprintf( "当前链表从头向尾数:\n");
		POSITION pos = myList.GetHeadPosition();
		for(i=1;i<=myList.GetCount();i++)
			_tprintf( "第 %d 个元素的数值为:%d\n", i, myList.GetNext(pos) );

		// 按从链表尾到链表头的顺序输出链表中所有元素数值
		_tprintf( "\n当前链表从尾向头数:\n");
		pos = myList.GetTailPosition();
		for(i=1;i<=myList.GetSize();i++)
			_tprintf( "第 %d 个元素的数值为:%d\n", i, myList.GetPrev(pos) );
		
		_tprintf("\n");

		// 在链头添加元素
		pos = myList.AddHead(6);

		// 在链头的下方插入新元素
		myList.InsertAfter( pos, 5 );
		_tprintf("当前位置的数值为:%d\n", myList.GetAt(pos));

		// 在链头添加元素
		pos = myList.AddHead( 8 );

		// 获得链表中第二个元素的指针 pos
		myList.GetNext( pos );

		// 在改元素前插入新元素,数值为空
		myList.InsertBefore( pos, NULL );

		// 获得改元素的指针
		myList.GetPrev( pos );

		// 设置改元素的数值
		myList.SetAt( pos, 7 );

		// 找寻数值为 8 的元素的指针
		pos = myList.Find( 8 );

		// 删除该元素
		myList.RemoveAt( pos );

		// 获得链表中索引号为 0 的元素的指针
		pos = myList.FindIndex( 0 );

		// 删除该元素
		myList.RemoveAt( pos );

		// 获得链头指针
		pos = myList.GetHeadPosition();

		// 输出链表所有元素数值
		for(i=1;i<=myList.GetSize();i++)
			_tprintf( "当前链表第 %d 个元素的数值为:%d\n", i, myList.GetNext(pos) );

		// 如果链表非空则删除链表所有元素
		if( ! myList.IsEmpty() )
			myList.RemoveAll();
	}

	// 调用该函数使程序不至于运行完立即退出,以便查看输出结果
	getchar();
	return nRetCode;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -