как добавить описание к каждому узлу связанного списка на языке Си - PullRequest
0 голосов
/ 05 мая 2018

Итак, я создал связанный список, но я хочу добавить описание к каждому узлу, созданному в выходных данных. Код:

#include<stdio.h>
#include<stdlib.h>

//Structure to create Linked list
typedef struct iorb {
int base_pri;
struct iorb *link;
char filler[100];
} IORB;

IORB * Build_list(int n);
void displaylist(IORB * head);

int main(){
int n=0;
IORB * HEAD = NULL;
printf("\nHow many blocks you want to store: ");
scanf("%d", &n);
HEAD = Build_list(n);
displaylist(HEAD);

return 0;
}

IORB * Build_list(int n){
int i=0;

IORB*head=NULL; //address of first block
IORB*temp=NULL; //temporary variable used to create individual block
IORB*p=NULL;    // used to add the block at the right position

for(i=0;i<n;i++){
        //individual block is created

    temp = (IORB*)malloc(sizeof(IORB));
    temp->base_pri = rand() % 10;         //random values are generated to 
   be stored in IORB blocks
    temp->link = NULL;                    //Next link is equal to NULL

    if(head == NULL){            //If list is empty then make temp as the 
   first block
        head = temp;
    }
    else{
        p = head;
        while(p->link != NULL)
            p = p->link;
            p->link = temp;
    }
}

return head;
}

void displaylist(IORB * head){

IORB * p = head;
printf("\nData entered for all the blocks:\n");

while(p != NULL)
{
printf("\t%d", p->base_pri);
p = p->link;
}
}

Итак, для описания используется массив "filler [100]". Чтобы дать лучшее представление, я хочу, чтобы описание было таким:

Данные для блока 1: 3

Данные для блока 2 - 0

Данные для блока 3 - 9

Данные для блока 4: 7

Данные для блока 5 - 4

Где 3,0,9,7,4 - случайно сгенерированные значения.

1 Ответ

0 голосов
/ 05 мая 2018

Вы можете отформатировать строку с помощью snprintf:

snprintf(temp->filler, sizeof temp->filler, "Data for block %d is %d", i, temp->base_pri);
...