Lesen Daten aus der Datei und das einfügen in verkettete Liste C++
Für dieses Programm, ich habe gelesen in einer Liste von Namen aus einer txt-Datei, und erstellen Sie einen neuen Knoten für jeden Namen, dann legen Sie den Knoten in einer verketteten Liste, und halten Sie Sie sortiert, als neue Namen sind zu Lesen in. Ich habe Schwierigkeiten, richtig Lesen in der Datei zeilenweise und erstellen Sie einen neuen Knoten und das setzen der Daten in. Ich bin ganz neu verknüpfte Listen, aber die Logik scheint sound in meiner Funktion einfügen, und ich denke, mein Fehler, verursacht durch meine syntax.
Hier ist mein main bisher:
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
#include "SortedLinkList.h"
using namespace std;
int main()
{
SortedLinkList<string> sll; //create sortedlinklist object
SortedLinkList<string> sll2;
ifstream infile("List1.txt");
if(infile.fail()) {
cout << "the input file could not be opened" << endl;
exit(0);
}
else {
cout << "Opening file 1" << endl;
string s;
while (infile >> s)
{
infile >> sll;
sll.insert(s); //attempting to create new node and use data read
from file
}
}
}
Hier ist meine Funktion einfügen. Das ist in "SortedLinkList.h"
Die Klasse Vorlagen, und ein Knoten.h-Klasse hat bereits zur Verfügung gestellt wurden,
was hat die getData() und getNext () - Funktion bereits. Die Variablen, aktuellen,Kopf,zurück, und zählen Sie alle erklärt worden. Die "Knoten.h" - Datei ist #in der "SortedLinkList.h".
template <class T>
void SortedLinkList<T>::insert(const T & value)
{
cout << "insert data" << endl;
//allocate a node with new
Node<T> *newNode, *current, *previous;
newNode = new Node<T>(value);
current = head;
previous = 0;
while(current != NULL)
if(head == 0)
{
head = newNode;
}
else
{
SortedLinkList* current = head;
SortedLinkList* previous = 0;
//traverse list to find ins. location
while(current != 0)
{
if(current->getData() >= newNode->getData())
{
break;
}
else
{
previous = current;
current = current->getNext();
}
}
//insert at head
if(current == head)
{
newNode->getNext() = head;
head = newNode;
}
//insert after head
else
{
newNode->getNext() = current;
previous->getNext() = newNode;
}
}
count++;
}
- Was macht Sie denken, dass es Fehler sind in deinem code?
- Ich habe versucht zu kompilieren, nur, dass ein Teil der Haupt-und der einfügen-Funktion, und es wird nicht kompiliert. Habe ich alle notwendigen Variablen (soweit ich weiß) und die "Knoten.h" Klasse auch.
- Bitte fügen Sie die compiler-Fehlermeldungen an deinen post an.
- Der compiler sagt, es gibt zwei Fehler, aber die Fehlermeldungen sind wirklich lang.
- die Fehler der Vergangenheit die Zeichen-Grenze
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den folgenden Zeilen schauen, wie Sie die Typen
SortedLinkList*
versehen.Haben Sie schon Erklärungen für
current
undprevious
an den Anfang der Funktion:Vielleicht haben Sie gedacht, um zu verwenden:
Den Fehler, den Sie gepostet bezieht sich auf die Zeile:
Schauen, was Sie tun, können Sie einfach entfernen Sie diese Zeile.