示例#1
0
int main (int argc, char* argv[])
{
  int dataInt[] = {1, 2, 3, 4, 5};
  CSinglyListNode* head = CreateTestList(dataInt, 5);
  PrintList(head);

  // RemoveHead
  RemoveHead(&head);
  PrintList(head);
  RemoveHead(&head);
  PrintList(head);
  RemoveHead(&head);
  PrintList(head);
  RemoveHead(&head);
  PrintList(head);
  RemoveHead(&head);
  PrintList(head);
  RemoveHead(&head);
  PrintList(head);

  std::cout << "DeleteList..." << std::endl;
  DeleteList(&head);
  std::cout << "head now : " << head << std::endl;
  PrintList(head);

  std::cout << "bye" << std::endl;
  return 0;
}
static
void DoTest()
{
    int num_items=64;
    My402List list, list2;

    memset(&list, 0, sizeof(My402List));
    memset(&list2, 0, sizeof(My402List));
    (void)My402ListInit(&list);
    (void)My402ListInit(&list2);

    CreateTestList(&list, num_items);
    RandomShuffle(&list, num_items);
    FindAllInList(&list, num_items);
    CopyTestList(&list, &list2);

    BubbleSortForwardList(&list, num_items);
    if (gnDebug > 0) PrintTestList(&list, num_items);

    BubbleSortBackwardList(&list2, num_items);
    if (gnDebug > 0) PrintTestList(&list2, num_items);

    CompareTestList(&list, &list2, num_items);

    My402ListUnlinkAll(&list);
    My402ListUnlinkAll(&list2);
}
示例#3
0
int main (int argc, char* argv[])
{
  int dataInt[] = {1, 2, 3, 4, 5};
  CSinglyListNode* head = CreateTestList(dataInt, 5);
  PrintList(head);

  std::cout << "--------------AppendNode-------------" << std::endl;
  int data;
  data = 6;
  if (!AppendNode(&head, data))
    std::cout << "failed to AppendNode: " << data << std::endl;
  data = 7;
  if (!AppendNode(&head, data))
    std::cout << "failed to AppendNode: " << data << std::endl;
  PrintList(head);
  std::cout << "----------------------------------------" << std::endl;

  std::cout << "--------------CopyList-------------" << std::endl;
  CSinglyListNode* newList = NULL;
  if (!CopyList(NULL, &newList))
    std::cout << "failed to CopyList" << std::endl;
  PrintList(head);
  PrintList(newList);

  if (!CopyList(head, &newList))
    std::cout << "failed to CopyList" << std::endl;
  PrintList(head);
  PrintList(newList);
  std::cout << "----------------------------------------" << std::endl;

  std::cout << "bye" << std::endl;

  return 0;
}
示例#4
0
int main (int argc, char* argv[])
{
  int dataInt[] = {1, 2, 3, 4, 5};
  CSinglyListNode* head = CreateTestList(dataInt, 5);
  PrintList(head);

  int dataInt2[] = {6, 7, 8, 9, 10, 11};
  CSinglyListNode* headCyclic = CreateTestListCyclic(dataInt2, 6);

  std::cout << "IsListCyclic(head) : " << IsListCyclic(head) << std::endl;
  std::cout << "IsListCyclic(headCyclic) : " << IsListCyclic(headCyclic) << std::endl;

  DeleteList(&head);

  std::cout << "bye" << std::endl;
  return 0;
}
示例#5
0
int main (int argc, char* argv[])
{
  int dataInt[] = {1, 2, 3, 4, 5};
  CSinglyListNode* head = CreateTestList(dataInt, 5);
  PrintList(head);

  CSinglyListNode* deleteMe = NULL;

  // Test 1
  deleteMe = Find(head, 2);
  if (deleteMe)
  {
    if (!DeleteElement(&head, deleteMe))
      std::cout << "Can't delete : " << deleteMe->iData << std::endl;
  }
  PrintList(head);

  // Test 2
  deleteMe = Find(head, 7);
  if (!deleteMe)
  {
    std::cout << "This element 7 doesn't exist" << std::endl;
  }

  // Test 3
  deleteMe = Find(head, 5);
  if (deleteMe)
  {
    if (!DeleteElement(&head, deleteMe))
      std::cout << "Can't delete : " << deleteMe->iData << std::endl;
  }
  PrintList(head);

  // Test 3
  std::cout << "DeleteList..." << std::endl;
  DeleteList(&head);
  std::cout << "head now : " << head << std::endl;
  PrintList(head);

  std::cout << "bye" << std::endl;

  return 0;
}
static
void ReadFileInput(FILE *handler, My402List *myList) {
	char buff[1025];
	My402ListElem *listElement = NULL;
	TransactionElem *tranElement = NULL;
	while(fgets(buff,1026,handler) != NULL) {
		if(strlen(buff) > 1024) {
				fprintf(stderr,"Input line is more than 1024 characters");
				PrintErrorMessage();
		}
		listElement = (My402ListElem *)malloc(sizeof(My402ListElem));
		tranElement = (TransactionElem *)malloc(sizeof(TransactionElem));
		if(tranElement == NULL || listElement == NULL) {
			fprintf(stderr,"Memory allocation failed!");
			exit(1);
		}
		FormatFileInput(buff,tranElement);	
		CreateTestList(myList,tranElement);
	} 
}