繁体   English   中英

如何将一组数字插入到链表中?

[英]How do you insert an array of numbers in to a linked list?

我有一个任务要制作一个获得 14 分的程序,并将它们放入双向链表中,以便我可以对数据进行排序,但我注意到您不能将数字数组插入到链表中,本身

int scores[15]

成一个链表。

#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<string.h>
#include<windows.h>
#include<conio.h>

struct mhs{

    char name[30];
    int scores[15];
    int finalScore;

    struct mhs *next, *prev;

};

void data(struct mhs **head, struct mhs **node, struct mhs **tail){

    char nama[30];
    int scores[15];
    int finalScore;
    int i, sum = 0;

    system("cls");
    printf("Name: ");
    scanf("[^\n]", name);
    fflush(stdin);
    for(i = 0; i < 14 ; i++){
        printf("Score %d: ", i+1);
        scanf("%d", &scores[i]);
    }
    for(i = 13; i > 3; i--){
        sum = sum + scores[i];
    }
    printf("Final Score: %d\n", sum / 10);
    system("pause");
    (*node) = (struct mhs*) malloc(sizeof(struct mhs));
    strcpy((*node)->nama, nama);
    (*node)->scores= scores;                      //here's where I insert the scores
    (*node)->finalScore= finalScore;

    if(*head == NULL){
        *head = *node;
        *tail = *node;
    } else {
        (*tail)->next = *node;
        (*node)->prev = *tail;
        *tail = *node;
    }

}

void data 是来自 int main() 的 function,这就是结构使用指针的原因。 谁能告诉我如何将一组数字添加到链表中?

            tldr;
            Did you said to insert each array of elements in to a single node of linked list.
            Then you need to assign base address of array to the node of the linked list to create linked list with each node containing array elements.

            It would be like -
        node 1 - array1 elements like [1,2,3,4]
        node 2 - array2 elements like [6,4,2,4]
        ...

            If you just want to convert linked list by using array elements. Then just iterate over it.
            Like

for(int i = 0;i<array_size;i++)
p->next = a[i];
p->next = NULL

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM