возвращение индекса элемента в списке C ++ - PullRequest
1 голос
/ 25 марта 2020

Кажется, это очень распространенный вопрос, но все они задаются в python. Я хотел бы вернуть индекс искомого элемента в списке ! Not STL!

Моя функция

void checkNode(LinkedList* head, int v)
{
LinkedList* p = head;
while (p != NULL) {
    if (p->data == v) {
        cout << ; // here should be answer i suppose
    }
    else {
        cout << -1;
    }

    p = p->next;
  }

}

1 Ответ

2 голосов
/ 25 марта 2020

Вам нужно объявить i и увеличивать счетчик при прохождении списка:

void checkNode(LinkedList* head, int v)
{
  LinkedList* p = head;
  int i=0; // Declare i
  while (p != NULL) {
    if (p->data == v) {
        cout << i; // output i
        return;
    }
    ++i; // Increment index counter
    p = p->next;
  }
  // we've searched through the entire list
  cout << -1; // not found
}

В случае, если вы действительно хотите вернуть индекс, как вы указали, а не так, как предлагает код. Это будет выглядеть так:

int checkNode(LinkedList* head, int v)
{
  LinkedList* p = head;
  int i=0; // Declare i
  while (p != NULL) {
    if (p->data == v) { 
        return i;
    }
    ++i; // Increment index counter
    p = p->next;
  }
  // we've searched through the entire list
  return -1; // not found
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...