微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

此列表插入功能的作用是什么?

如何解决此列表插入功能的作用是什么?

每次我觉得自己掌握了指针时,似乎都无法在另一次尝试中理解它们。我看了一堆这个函数,我相信它将按排序顺序插入值(从最小到最大),但是在可视化列表(假设我正确执行此操作)时,插入了以下值10,40,5,20如下所示:|10|0|40|0|5|0|20|所以我不明白该函数的作用,或者我以某种方式打印了错误内容。这是函数(foo)及其组件:

#include <iostream>
using namespace std;

class list {
  struct node {
    node() { key=0; next=NULL; }
    int key;
    node *next;
  };
  public:
    list() { L = new node; }
    void foo(int);
  private:
    node *L;
};

//what does THIS function do?
void list::foo(int key) {
  node *p = L,*q = L->next;
  while (q && q->key < key) {
    p = q;
    q = q->next;
  }
  p->next = new node;
  p->next->key = key;
  p->next->next = q;
}

int main() {
list L; int key;
while (cin >> key)
  L.foo(key);
}

我没有写这个。这是作业的一部分(我相信我失败了)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。