没事去看MSDN...#using <System.dll>using namespace System; using namespace System::Text; using namespace System::Collections::Generic;void Display(LinkedList<String^>^ words) { for each( String^ word in words ) { Console::Write(word + " "); } Console::WriteLine(); };void DisplayNode(LinkedListNode<String^>^ node) { if (node->List == nullptr) { Console::WriteLine("Node \"{0}\" is not in a list.", node->Value); return; } StringBuilder^ result = gcnew StringBuilder("(" + node->Value + ")"); LinkedListNode<String^>^ nodeP = node->Previous; while (nodeP != nullptr) { result->Insert(0, nodeP->Value + " "); nodeP = nodeP->Previous; } node = node->Next; while (node != nullptr) { result->Append(" " + node->Value); node = node->Next; } Console::WriteLine(result); };void main() { array<String^>^ words = {"the", "fox", "jumped", "over", "the", "dog"}; LinkedList<String^>^ sentence = gcnew LinkedList<String^>((IEnumerable<String^>^) words); Display(sentence); Console::WriteLine("sentence->Contains(\"jumped\") = {0}", sentence->Contains("jumped")); // Add the word "today" to the beginning of the linked list. // Remove the new node, and add it to the end of the list. sentence->AddFirst("today"); Display(sentence); LinkedListNode<String^>^ 1 = sentence->First; sentence->RemoveFirst(); sentence->AddLast(1); Display(sentence); sentence->RemoveLast(); sentence->AddLast("yesterday"); Display(sentence); 1 = sentence->Last; sentence->RemoveLast(); sentence->AddFirst(1); Display(sentence); sentence->RemoveFirst(); LinkedListNode<String^>^ current = sentence->FindLast("the"); DisplayNode(current); sentence->AddAfter(current, "old"); sentence->AddAfter(current, "lazy"); DisplayNode(current); current = sentence->Find("fox"); DisplayNode(current); sentence->AddBefore(current, "quick"); sentence->AddBefore(current, "brown"); DisplayNode(current); // Keep a reference to the current node, "fox", and to the // previous node in the list. Use the Find method to locate // the node containing the value "dog". Show the position. 1 = current; LinkedListNode<String^>^ 2 = current->Previous; current = sentence->Find("dog"); DisplayNode(current); // The AddBefore method throws an InvalidOperationException // if you try to add a node that already belongs to a list. try { sentence->AddBefore(current, 1); } catch(InvalidOperationException^ ex) { Console::WriteLine("Exception message: {0}", ex->Message); } // Remove the node referred to by 1, and add it before // the node referred to by current. Show the sentence, // highlighting the position of the node referred to by // current. sentence->Remove(1); sentence->AddBefore(current, 1); DisplayNode(current); // Remove the node referred to by current. If you try to show // its position now, the DisplayNode method prints a message. // Add the node after the node referred to by 2, and // display the sentence, highlighting current. sentence->Remove(current); DisplayNode(current); sentence->AddAfter(2, current); DisplayNode(current); // The Remove method finds and removes the first node that // that has the specified value. sentence->Remove("old"); Display(sentence); // When the linked list is cast to ICollection(Of String), // the Add method adds a node to the end of the list. sentence->RemoveLast(); ICollection<String^>^ icoll = sentence; icoll->Add("rhinoceros"); Display(sentence); // Create an array with the same number of elements as the // linked list. Console::WriteLine("\nCopy the list to an array."); array<String^>^ sArray = gcnew array<String^>(sentence->Count); sentence->CopyTo(sArray, 0); for each( String^ s in sArray ) { Console::WriteLine(s); } // Release all the nodes. sentence->Clear(); }//This code example produces the following output: // //the fox jumped over the dog //sentence->Contains("jumped") = True //today the fox jumped over the dog //the fox jumped over the dog today //the fox jumped over the dog yesterday //yesterday the fox jumped over the dog //the fox jumped over (the) dog //the fox jumped over (the) lazy old dog //the (fox) jumped over the lazy old dog //the quick brown (fox) jumped over the lazy old dog //the quick brown fox jumped over the lazy old (dog) //Exception message: The LinkedList node belongs a LinkedList. //the quick brown jumped over the lazy old fox (dog) //Node "dog" is not in a list. //the quick brown (dog) jumped over the lazy old fox //the quick brown dog jumped over the lazy fox //the quick brown dog jumped over the lazy rhinoceros // //Copy the list to an array. //the //quick //brown //dog //jumped //over //the //lazy //rhinoceros
using namespace System::Text;
using namespace System::Collections::Generic;void Display(LinkedList<String^>^ words)
{
for each( String^ word in words )
{
Console::Write(word + " ");
}
Console::WriteLine();
};void DisplayNode(LinkedListNode<String^>^ node)
{
if (node->List == nullptr)
{
Console::WriteLine("Node \"{0}\" is not in a list.",
node->Value);
return;
} StringBuilder^ result = gcnew StringBuilder("(" + node->Value + ")");
LinkedListNode<String^>^ nodeP = node->Previous; while (nodeP != nullptr)
{
result->Insert(0, nodeP->Value + " ");
nodeP = nodeP->Previous;
} node = node->Next;
while (node != nullptr)
{
result->Append(" " + node->Value);
node = node->Next;
} Console::WriteLine(result);
};void main()
{
array<String^>^ words =
{"the", "fox", "jumped", "over", "the", "dog"};
LinkedList<String^>^ sentence =
gcnew LinkedList<String^>((IEnumerable<String^>^) words);
Display(sentence); Console::WriteLine("sentence->Contains(\"jumped\") = {0}",
sentence->Contains("jumped")); // Add the word "today" to the beginning of the linked list.
// Remove the new node, and add it to the end of the list.
sentence->AddFirst("today");
Display(sentence); LinkedListNode<String^>^ 1 = sentence->First;
sentence->RemoveFirst();
sentence->AddLast(1);
Display(sentence); sentence->RemoveLast();
sentence->AddLast("yesterday");
Display(sentence); 1 = sentence->Last;
sentence->RemoveLast();
sentence->AddFirst(1);
Display(sentence); sentence->RemoveFirst(); LinkedListNode<String^>^ current = sentence->FindLast("the");
DisplayNode(current); sentence->AddAfter(current, "old");
sentence->AddAfter(current, "lazy");
DisplayNode(current); current = sentence->Find("fox");
DisplayNode(current); sentence->AddBefore(current, "quick");
sentence->AddBefore(current, "brown");
DisplayNode(current); // Keep a reference to the current node, "fox", and to the
// previous node in the list. Use the Find method to locate
// the node containing the value "dog". Show the position.
1 = current;
LinkedListNode<String^>^ 2 = current->Previous;
current = sentence->Find("dog");
DisplayNode(current); // The AddBefore method throws an InvalidOperationException
// if you try to add a node that already belongs to a list.
try
{
sentence->AddBefore(current, 1);
}
catch(InvalidOperationException^ ex)
{
Console::WriteLine("Exception message: {0}", ex->Message);
} // Remove the node referred to by 1, and add it before
// the node referred to by current. Show the sentence,
// highlighting the position of the node referred to by
// current.
sentence->Remove(1);
sentence->AddBefore(current, 1);
DisplayNode(current); // Remove the node referred to by current. If you try to show
// its position now, the DisplayNode method prints a message.
// Add the node after the node referred to by 2, and
// display the sentence, highlighting current.
sentence->Remove(current);
DisplayNode(current);
sentence->AddAfter(2, current);
DisplayNode(current); // The Remove method finds and removes the first node that
// that has the specified value.
sentence->Remove("old");
Display(sentence); // When the linked list is cast to ICollection(Of String),
// the Add method adds a node to the end of the list.
sentence->RemoveLast();
ICollection<String^>^ icoll = sentence;
icoll->Add("rhinoceros");
Display(sentence); // Create an array with the same number of elements as the
// linked list.
Console::WriteLine("\nCopy the list to an array.");
array<String^>^ sArray = gcnew array<String^>(sentence->Count);
sentence->CopyTo(sArray, 0); for each( String^ s in sArray )
{
Console::WriteLine(s);
} // Release all the nodes.
sentence->Clear();
}//This code example produces the following output:
//
//the fox jumped over the dog
//sentence->Contains("jumped") = True
//today the fox jumped over the dog
//the fox jumped over the dog today
//the fox jumped over the dog yesterday
//yesterday the fox jumped over the dog
//the fox jumped over (the) dog
//the fox jumped over (the) lazy old dog
//the (fox) jumped over the lazy old dog
//the quick brown (fox) jumped over the lazy old dog
//the quick brown fox jumped over the lazy old (dog)
//Exception message: The LinkedList node belongs a LinkedList.
//the quick brown jumped over the lazy old fox (dog)
//Node "dog" is not in a list.
//the quick brown (dog) jumped over the lazy old fox
//the quick brown dog jumped over the lazy fox
//the quick brown dog jumped over the lazy rhinoceros
//
//Copy the list to an array.
//the
//quick
//brown
//dog
//jumped
//over
//the
//lazy
//rhinoceros