コード例 #1
0
ファイル: main.cpp プロジェクト: DaltheCow/CIS-277
//String Linked List functions
void airportMenu() {
    int choice = 1, distance = 0;
    string search;
    StringLinkedList list;
    list.createList();
    cout << "LGA is the first airport in this list." << endl;
    while (choice != 0) {
        switch (choice) {
            case 1: list.addNodeEnd(makeNewInfo());
                    cout << "Would you like to add another airport? (1 = yes, 2 = no)" << endl;
                    cin >> choice;
                    cout << endl;
                break;
            case 2: cout << "Select an airport code to search, its distance from LGA will be calculated:";
                    cin >> search;
                    distance = list.searchNodes(search);
                if (distance == 0) {
                    cout << "Please search for a valid code." << endl;
                }
                else {
                    cout << "Distance is " << distance << " miles." << endl;
                    cout << "Would you like to make another search? (1 = yes, 2 = no)" << endl;
                    cin >> choice;
                    choice ++;
                    if (choice == 3)
                        choice = 0;
                }
                break;
        }
    }
}
コード例 #2
0
ファイル: TestInsert.cpp プロジェクト: Implication/CPSC
// Test case 3: insertAtMiddle
TEST(TestInsert, insertAtMiddle) {
	StringLinkedList l;
	l.insert(0, "A");
	l.insert(1, "B");
	EXPECT_EQ("A->B", l.toString());

	l.insert(1, "C");
	EXPECT_EQ("A->C->B", l.toString());

	l.insert(1, "D");
	EXPECT_EQ("A->D->C->B", l.toString());

	l.insert(2, "E");
	EXPECT_EQ("A->D->E->C->B", l.toString());
}
コード例 #3
0
ファイル: TestInsert.cpp プロジェクト: Implication/CPSC
// Test case 2: insertAtBack
TEST(TestInsert, insertAtBack) {
	StringLinkedList l;
	l.insert(0, "A");
	EXPECT_EQ("A", l.toString());

	l.insert(1, "B");
	EXPECT_EQ("A->B", l.toString());

	l.insert(2, "C");
	EXPECT_EQ("A->B->C", l.toString());
}
コード例 #4
0
ファイル: TestInsert.cpp プロジェクト: Implication/CPSC
// Test case 1: insertAtFront
TEST(TestInsert, insertAtFront) {
	StringLinkedList l;
	l.insert(0, "A");
	EXPECT_EQ("A", l.toString());

	l.insert(0, "B");
	EXPECT_EQ("B->A", l.toString());

	l.insert(0, "C");
	EXPECT_EQ("C->B->A", l.toString());
}
コード例 #5
0
ファイル: TestInsert.cpp プロジェクト: Implication/CPSC
// Test case 4: outOfBoundException
TEST(TestInsert, outOfBoundException) {
	StringLinkedList l;
	EXPECT_THROW(l.insert(1, "A"), OutOfBoundException);
	EXPECT_THROW(l.insert(-1, "A"), OutOfBoundException);

	l.insert(0, "A");
	EXPECT_THROW(l.insert(2, "A"), OutOfBoundException);
	EXPECT_THROW(l.insert(-2147483647, "A"), OutOfBoundException);
}
コード例 #6
0
ファイル: TestConstructor.cpp プロジェクト: Implication/CPSC
TEST(TestConstructor, defaultConstructor) {
	StringLinkedList l;
	EXPECT_EQ("", l.toString());
}
コード例 #7
0
ファイル: win32_file.cpp プロジェクト: SilbinaryWolf/fel
	StringLinkedList getFilesRecursive(AllocatorPool* pool, String directory, Error* error)
	{
		if (directory.length == 0)
		{
			StringLinkedList nullResult = {};
			return nullResult;
		}

		char* lastCharacter = &directory.data[directory.length - 1];
		if (lastCharacter[0] == '/' || lastCharacter[0] == '\\')
		{
			// Trim trailing back-or-forward slash
			directory.length -= 1;
		}

		assert(directory.length < MAX_PATH);

		// Convert String to C-String
		char baseDir[MAX_PATH];
		memcpy(baseDir, directory.data, directory.length);
		baseDir[directory.length] = '\0';

		// Convert C-String to WChar-String
		wchar_t szBaseDir[MAX_PATH];
		mbstowcs(szBaseDir, baseDir, MAX_PATH);

		const u32 directoryLimit = 100;
		wchar_t szDirectories[directoryLimit][MAX_PATH+10];
		u32 directories = 0;
		u32 files = 0;
		StringCchCopy(szDirectories[directories++], MAX_PATH, szBaseDir);

		StringLinkedList list = {};
		while (directories > 0)
		{
			--directories;

			wchar_t currentDirectory[MAX_PATH];
			StringCchCopy(currentDirectory, MAX_PATH, szDirectories[directories]);

			wchar_t currentDirectoryWSearch[MAX_PATH];
			StringCchCopy(currentDirectoryWSearch, MAX_PATH, currentDirectory);
			StringCchCat(currentDirectoryWSearch, MAX_PATH, TEXT("\\*"));

			WIN32_FIND_DATA ffd;
			HANDLE hFind = FindFirstFile(currentDirectoryWSearch, &ffd);
			DWORD dLastError = GetLastError();
			if (hFind == INVALID_HANDLE_VALUE || dLastError == ERROR_FILE_NOT_FOUND) 
			{
				if (error)
				{
					if (dLastError == ERROR_FILE_NOT_FOUND)
					{
						error->errorCode = DIRECTORY_NO_FILES;
					}
					else
					{
						error->errorCode = DIRECTORY_INVALID_DIR;
					}
				}
				StringLinkedList list_null = {};
				return list_null;
			}

			do
			{
				if (wcscmp(ffd.cFileName, TEXT(".")) != 0 && wcscmp(ffd.cFileName, TEXT("..")) != 0)
				{
					if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
					{
						// Push this directory to be searched next iteration.
						StringCchCopy(szDirectories[directories], MAX_PATH, currentDirectory);
						StringCchCat(szDirectories[directories], MAX_PATH, TEXT("\\"));
						StringCchCat(szDirectories[directories], MAX_PATH, ffd.cFileName);
						++directories;
					}
					else
					{
						wchar_t filepath[MAX_PATH];
						StringCchCopy(filepath, ArrayCount(filepath), currentDirectory);
						StringCchCat(filepath, ArrayCount(filepath), TEXT("\\"));
						StringCchCat(filepath, ArrayCount(filepath), ffd.cFileName);
						
						String string = WcharToUTF8String(pool, filepath);
						list.add(string, pool);
						++files;
					}
				}
			}
			while (FindNextFile(hFind, &ffd) != 0);
			FindClose(hFind);
		}
		return list;
	}
コード例 #8
0
ファイル: singly.cpp プロジェクト: hihasan/Short-Code
int main()
{
    StringLinkedList<int> A;
    A.addFront(10);
    A.addFront(15);
    A.addAfter(12,10);
    A.addFront(13);
    cout<<"Front : "<<A.front()<<endl;
    A.printList();
    cout<<"After sorting : ";
    A.sortList();
    A.printList();
    cout<<"After reversing : ";
    A.reverseList();
    A.printList();
    A.removeFront();
    A.removeFront();
    A.printList();
    return 0;
}
コード例 #9
0
ファイル: main.cpp プロジェクト: DaltheCow/CIS-277
void LinkedStack::push(const int& element) {
    S.addFront(element);
    n++;
}
コード例 #10
0
ファイル: main.cpp プロジェクト: DaltheCow/CIS-277
void LinkedStack::pop() {
    S.cutFront();
    n--;
}
コード例 #11
0
ファイル: main.cpp プロジェクト: DaltheCow/CIS-277
const int& LinkedStack::top2() {
    return S.front2();
}
コード例 #12
0
ファイル: main.cpp プロジェクト: DaltheCow/CIS-277
//Linked Stack functions
const string& LinkedStack::top() {
    return S.front();
}