トレーニング>チェーンテーブルの逆シーケンス印刷、チェーンテーブルのテールプラグ.


スタックの先進的な後出を利用して、まずチェーンテーブルを貯蔵する.スタックのタイプはNode*(チェーンテーブルのノードを格納するため)、コピー時の境界判断はstackのpush(),top(),pop()メソッドを使用することに注意してください.チェーンテーブルの末尾にパラメータを挿入するときにチェーンテーブルの2次ポインタを渡します.
#include
#include
using namespace std;

struct Node
{
     
	int value;
	Node* next;
};
///    
//          
void BackPint(Node* sql)
{
     
	std::stack<Node*> stack;
	Node* node = sql;
	while (node != NULL)
	{
     
		stack.push(node);
		node = node->next;
	}
	while (!stack.empty())
	{
     
		node = stack.top();
		cout << node->value << " ";
		stack.pop();
	}
}

///  
void PushBack(Node** sql, int val)
{
     
	Node * node = new Node;
	node->value = val;
	node->next = NULL;

	if (*sql == NULL)
	{
     
		*sql = node;
		return;
	}
	//          
	Node *cur = *sql;
	while (cur->next != NULL)
	{
     
		cur = cur->next;
	}
	cur->next = node;
}


int main()
{
     
	Node* list=NULL;
	PushBack(&list, 1);
	PushBack(&list, 2);
	PushBack(&list, 3);
	PushBack(&list, 4);
	PushBack(&list, 5);
	PushBack(&list, 6);
	PushBack(&list, 7);
	BackPint(list);
	system("pause");
}