(插入有序列表)

(Inserting into an Ordered List)

我必须编写这个程序: 编写一个程序,在链表中按顺序插入 25 个从 0 到 100 的随机整数。程序应该计算元素的总和和元素的浮点平均值。 这是我到目前为止用随机词填充链表所做的,但它只是重复一个特定的整数。

struct node
{
    int data;
    struct node* next;
};
node *head;
void randomize()
{
 node *newnode;
 //srand(time(NULL));
 for (int i=0;i<25;i++)
 {
  srand(time(NULL));
  newnode=(node *)malloc(sizeof(node));
  srand(time(NULL));
  int random=rand()%100;
  newnode->data=random;
  newnode->next=head;
  head=newnode;

 }
}
void display()
{
 node *record=head;
 while(record!=NULL)
 {
  cout<<(record->data)<<endl;
  record=record->next;
 }
}
int main()
{
 randomize();
 display();
 getch();
}

`>

struct node
{
    int data;
    struct node* next;
};
node *head;
void randomize()
{
    node *newnode;
    newnode=(node *)malloc(sizeof(node));
    srand(time(NULL));
    for (int i=0;i<25;i++)
    {
        srand(time(NULL));
        int random=rand()%100;
        newnode->data=random;
        newnode->next=head;
        head=newnode;

    }
}
void display()
{
    node *record=head;
    while(record!=NULL)
    {
        cout<<(record->data);
        record=record->next;
    }
}
int main()
{
    randomize();
    display();
    getch();
}

重复来自代码的 randomize() 方法。 移动线

newnode = (node*) malloc(sizeof(node));

进入 randomize() 中的 for 循环。通过这种方式,您可以创建一个新节点并将其添加到列表中。

您必须考虑重写 randomize() 以创建有序列表。例如,您应该遍历当前列表并为具有随机值的新节点找到合适的位置。除了前置,您还可以附加,这对于有序链表来说非常容易。您可以在 Google.

的帮助下轻松找到示例(有序链表)

我可以发现 3 件事:

  1. 将 head 分配给 NULL;
    节点 *head = NULL;
  2. 在 for 循环内移动内存分配
  3. 使用mod乘以101得到0到之间的随机数 100