Example #1
0
// Тестовый пример
void main()
{
    // Создаем объект класса List
    List lst;

    // Тестовая строка
    char s[] = "Hello, World !!!\n";
    // Выводим строку
    cout << s << "\n\n";
    // Определяем длину строки
    int len = strlen(s);
    // Загоняем строку в список
    for(int i = 0; i < len; i++)
        lst.Add(s[i]);
    // Распечатываем содержимое списка
    lst.Print();
    // Удаляем три элемента списка
    lst.Del();
    lst.Del();
    lst.Del();
    //Распечатываем содержимое списка
    lst.Print();

    //Вставляем 3-й символ, согласно нумерации массива с нуля
    lst.Insert('+',2);
    lst.Print();

    //удаляем 3-й символ
    lst.Delete(2);
    lst.Print();

    //находим позицию элемента 'l'
    cout<<"First position of 'l': "<<lst.Search('l')<<endl<<endl;
}
Example #2
0
	int PopFront()
	{
		if (IsEmpty())
			throw "Deque is empty";

		int value = list.GetHeadData();
		list.Del(1);
		count = list.GetCount();
		return value;
	}
Example #3
0
	int PopBack()
	{
		if (IsEmpty())
			throw "Deque is empty";

		int value = list.GetTailData();
		list.Del(list.GetCount());
		count = list.GetCount();
		return value;
	}
Example #4
0
void main()
{
   List lst;
   char s[] = "Hello, World !!!\n";
   cout << s << "\n\n";
   int len = strlen(s);
   for(int i = 0; i < len; i++)
      lst.Add(s[i]);
  // lst.Print();
  // lst.Del();
   //lst.Del();
   //lst.Del();
   //lst.Add(1,'G');
   lst.Del(100);
   lst.Print();
   cout << lst.Find('H') << endl;
}
Example #5
0
void Solve()
{
	int m,n;
	List l;
	while (cin>>n)
	{
		m=20;
		node temp;
		for(int i=0;i<n;i++)
		{
			cin>>temp.m;
			temp.name=i+1;
			l.push_back(temp);
		}
		l.head->pre=l.tail;
		l.tail->next=l.head;
		bool flag=false;
		while (!l.empty())
		{
			if(flag)
			{
				printf(",");
			}
			int x=m-1;
			printf("%d",l[x].name);
			m=l[x].m;
			node *pTemp;
			pTemp=l[x].next;
			l.Del(x);
			l.head=pTemp;
			n--;
			flag=true;
		}
		printf("\n");
		l.clear();
	}
}
Example #6
0
/** int main(int argc, char* argv[]) */
int main(int argc, char* argv[])
{
	List<int> list;
	int N;
	cout << "N = ";
	cin >> N;
	vector<string> expressions;
	string expression;
	int i = 0;
	int size;
	cin.ignore(numeric_limits<streamsize>::max(), '\n');
	while (i < N && i >= 0)
	{
		cout << i + 1 << ">>";
		getline(cin, expression);
		expressions = split(expression, ' ');
		size = expressions.size();
		if (size == 0)
		{
			cout << "The expression is not correct. Try again.\n";
			i--;
		}
		else if (expressions[0] == "add")
		{
			if (size == 3)
			{
				if (!list.Add(stoi(expressions[1]), stoi(expressions[2])))
				{
					cout << "Bad index. Try again\n";
					i--;
				}
			}
			else
			{
				cout << "The expression is not correct. Try again.\n";
				i--;
			}
		}
		else if (expressions[0] == "del")
		{
			if (size == 2)
			{
				if (!list.Del(stoi(expressions[1])))
				{
					cout << "Bad index. Try again\n";
					i--;
				}
			}
			else
			{
				cout << "The expression is not correct. Try again.\n";
				i--;
			}
		}
		else if (expressions[0] == "get")
		{
			if (size == 2)
			{
				try
				{
					cout << list.Get(stoi(expressions[1]))->Data << endl;
				}
				catch (char* message)
				{
					cout << message << ". Try again\n";
					i--;
				}
			}
			else
			{
				cout << "The expression is not correct. Try again.\n";
				i--;
			}
		}
		else
		{
			cout << "The operation is not correct. Try again.\n";
			i--;
		}
		i++;
	}
	system("pause");
	return 0;
}