本文整理汇总了C++中LinkList::Insert方法的典型用法代码示例。如果您正苦于以下问题:C++ LinkList::Insert方法的具体用法?C++ LinkList::Insert怎么用?C++ LinkList::Insert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LinkList
的用法示例。
在下文中一共展示了LinkList::Insert方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: test3
void test3()
{
LinkList list;
list.PushBack(1);
list.PushBack(2);
list.PushBack(3);
list.PushBack(4);
cout << list << endl;
list.Insert(list.Find(1), 2);
cout << list << endl;
list.Insert(list.Find(4), 5);
cout << list << endl;
}
示例2: main
int main()
{
int a[] = {1,9,3,5,19,38,29,2,4,25,61,-1,7};
LinkList<int>* list = new LinkList<int>(a, 13);
list->PrintLinkList();
int listlength = list->ListLength();
std::cout<<"the list length is"<<listlength<<std::endl;
int theLastElement = list->Get(13);
assert(theLastElement == 7);
std::cout<<"the last element value is"<< theLastElement << std::endl;
std::cout<<"the values that the array contained currently display"<<std::endl;
list->PrintLinkList();
std::cout<<std::endl;
std::cout<<"delete the eigth element 2";
std::cout<<std::endl;
list->Delete(8);
std::cout<<"the values that the array contained currently display"<<std::endl;
std::cout<<"the position of 61 is";
std::cout<<std::endl;
int position = list->Locate(61);
std::cout<<std::endl;
std::cout<<position<<std::endl;
std::cout<<"the values that the array contained currently display"<<std::endl;
list->PrintLinkList();
std::cout<<std::endl;
std::cout<<"now we add a value at first position"<<std::endl;
list->Insert(1, 11111);
std::cout<<"the values that the array contained currently display"<<std::endl;
list->PrintLinkList();
std::cout<<std::endl;
list->Invert();
std::cout<<"the invert array list is"<<std::endl;
list->PrintLinkList();
}
示例3: main
int main() {
enum HUNG_STATE { PLATFORM, HEAD, BODY, LEFT_ARM, RIGHT_ARM, LEFT_LEG, RIGHT_LEG, HUNG };
HUNG_STATE hanged = PLATFORM;
LinkList word;
char raw_word[255] = "Antelope"; //CHANGE WORD HERE
for (int i = 0; i < strlen(raw_word); i++) {
char c = raw_word[i];
Slot letter(c);
word.Insert(letter);
}
LinkList pickedLetters;
cout << "Welcome to Hangman!\n" << endl;
while (hanged != HUNG) { // While the player is not yet 'hanged'
cout << "The word is now:\n";
word.Print(); //Print the word; letters will be displayed as chars or blanks
cout << "The letters you have guessed are:\n";
pickedLetters.Print();
cout << "Please enter a letter to guess:" << endl;
char guess = getchar(); // Take user input for next letter to guess
pickedLetters.Insert(guess); // Store the entered letter as being guessed
if (word.RevealLetters()) { //If letters are revealed...
cout << "Good guess!\n";
}
else { //If no letters are revealed...
++hanged; //Increase hanged status
if (hanged != HUNG) { // If the player is not yet 'hanged'...
cout << "Try again!\n";
}
else { // The player is hanged!
cout << "Sorry, you've lost!\n";
}
}
}
}
示例4: main
int main()
{
LinkList<int> intlinklist;
for (int i = 0; i < 5; i++)
{
intlinklist.Insert(i, i);
}
intlinklist.PrintList();
system("pause");
}
示例5: main
int main()
{
LinkList<int> ll;
cout << "Created a link list..." << endl;
cout << "length = " << ll.Count() << endl;
for (int i = 1; i <= 10; i++)
{
int val = i * 2;
ll.Insert(val, ll.Count() + 1);
cout << val << " inserted. length = " << ll.Count() << endl;
}
Display(ll);
cout << "Reversing ..." << endl;
ll.Reverse();
Display(ll);
cout << "Reversing again ..." << endl;
ll.Reverse();
Display(ll);
int idx = 1;
int val = ll.Get(idx);
cout << "Get(" << idx << ") = " << val << "." << endl;
idx = ll.Locate(val);
cout << "Locate(" << val << ") = " << idx << "." << endl;
if (idx == ll.Locate(val))
{
cout << val << " is at " << idx << "." << endl;
}
idx = 7;
val = ll.Get(idx);
if (idx == ll.Locate(val))
{
cout << val << " is at " << idx << "." << endl;
}
idx = ll.Count();
val = ll.Get(idx);
if (idx == ll.Locate(val))
{
cout << val << " is at " << idx << "." << endl;
}
val = 9999999;
if (-1 == ll.Locate(val))
{
cout << "Unable to locate " << val << "." << endl;
}
cout << "Inserting 3 at 3 ..." << endl;
ll.Insert(3, 3);
Display(ll);
cout << "Deleting 3 ..." << endl;
ll.Delete(3);
Display(ll);
cout << "Inserting 0 at 1 ..." << endl;
ll.Insert(0, 1);
Display(ll);
cout << "Deleting 0 ..." << endl;
ll.Delete(1);
Display(ll);
cout << "Inserting 11 at 12 ..." << endl;
ll.Insert(11, 11);
Display(ll);
cout << "Deleting 11 ..." << endl;
ll.Delete(11);
Display(ll);
try
{
cout << "call LinkList<int> lla = ll ..." << endl;
LinkList<int> lla = ll;
cout << "lla.length = " << lla.Count() << endl;
cout << "call LinkList<int> llb(ll) ..." << endl;
LinkList<int> llb(ll);
cout << "llb.length = " << llb.Count() << endl;
llb.Insert(77, 7);
cout << "llb.length = " << llb.Count() << endl;
cout << "call llb = lla ..." << endl;
llb = lla;
cout << "llb.length = " << llb.Count() << endl;
cout << "lla.length = " << lla.Count() << endl;
cout << "Splitting llb ..." << endl;
llb.Insert(88, 8);
cout << "llb.length = " << llb.Count() << endl;
LinkList<int> llb2 = llb.Split();
Display(llb);
Display(llb2);
cout << "Splitting ll ..." << endl;
LinkList<int> llc = ll.Split();
Display(ll);
Display(llc);
//.........这里部分代码省略.........
示例6: GetPath
void Graph::GetPath(Graph_Node* StartNode, Graph_Node* EndNode, LinkList<Graph_Node* > *Path, bool Advanced)
{
LinkList<PathNode*> OpenList;
LinkList<PathNode*> ClosedList;
bool Found = false;
/**< Create our first Node on OpenList made From the start Node */
OpenList.Push_Front(new PathNode(StartNode,0,0,(StartNode->GetPosition() - EndNode->GetPosition()).length()));
/**< If we haven't found our goal Node yet */
while(!Found)
{
/**< If there are no more Nodes to expand from then there is no way to get to the goal Node so exit the Method */
if(OpenList.GetSize() == 0)
{
return;
}
/**< Get and remove first node on the OpenList and push onto ClosedList */
PathNode* Currentnode = OpenList.Pop_Front();
ClosedList.Push_Front(Currentnode);
/**< If Current Node is the goal Node then we have found the Goal Node so exit loop */
if(Currentnode->mNode == EndNode)
{
Found = true;
}
/**< Iterate through each Edge in the Node creating a new PathNode push on the OpenList */
for(int i = 0;i < Currentnode->mNode->GetEdgeCount();i++)
{
float cost, Heuristic;
/**< The current Node being pushed on the OpenList */
Graph_Node* node = Currentnode->mNode->GetTo(i);
/**< Create new PathNode if Node isn't used or Edge to Node isn't hidden */
if(!node->GetUsed() && !Currentnode->mNode->GetHidden(i))
{
/**< If advanced search get advanced cost and Heuristic*/
if(!Advanced)
{
cost = Currentnode->mKnownCost + (Currentnode->mNode->GetWeight(i)); /**< Add up how much it took to get to this Node */
Heuristic = (node->GetPosition() - EndNode->GetPosition()).length(); /**< Guess how much it would take to get to the Goal Node */
}/**< Else get normal cost and Heuristic*/
else
{
cost = Currentnode->mKnownCost + (Currentnode->mNode->GetWeight(i) * Currentnode->mNode->GetAdvancedWeight(i)); /**< Add up how much it took to get to this Node */
Heuristic = (node->GetPosition() - EndNode->GetPosition()).length(); /**< Guess how much it would take to get to the Goal Node */
}
PathNode* newnode = new PathNode(node,Currentnode,cost, cost + Heuristic); /**< Create New Path Node */
int iter = 0;
/**< Get the position in the OpenList that has a bigger cost than the new Nodes cost. */
/**< Push new node infront of that position */
if(OpenList.GetSize() != 0)
{
while(newnode->mGuess > OpenList.At(iter)->mGuess && iter != OpenList.GetSize())
{
iter++;
}
}
/**< Set the Edge we just Used To Used */
/**< Insert the New Node into the OpenList */
node->SetUsed(true);
OpenList.Insert(newnode,iter);
}
}
}
/**< Reset all Nodes in the OpenList */
for(ListIterator<PathNode*> iter(&OpenList); !iter.IsNuLL();iter++)
{
iter.Value()->mNode->SetUsed(false);
}
/**< Reset all Nodes in the ClosedList */
for(ListIterator<PathNode*> iter(&ClosedList); !iter.IsNuLL();iter++)
{
iter.Value()->mNode->SetUsed(false);
}
/**< Set the first Node on the ClosedList */
/**< (Which is the last Node added so will be the Goal Node) */
/**< to the Node we will use to iterate through the Closed List */
PathNode* CreatePathNode = ClosedList.At(0);
/**< While the PathNode isnt 0. */
/**< (The start Node was added to the ClosedList, with a previous that is set to 0) */
/**< Add the GraphNode to the Path then set the created PathNode to the previous Node */
/**<(Which is the PathNode Used to expand The current Node) */
while(CreatePathNode != 0)
{
Path->Push_Front(CreatePathNode->mNode);
CreatePathNode = CreatePathNode->mPrevious;
}
}