首页 > 解决方案 > 链表用户插入节点 (C)

问题描述

我想制作一个用户插入节点的链表。在这段代码中,我将使用表格(但现在这不是我的问题)和打印方法(这也不是我现在的问题)。

我想在每个节点中保存以下数据:

1)行(整数)

2)列(整数)

3)价值(浮动)

我希望每次插入一个节点(它将被插入第一个位置),头部将是对第一个节点(它被插入)的引用。

例如,我想成为这样的东西:

输入行:2

输入栏目:3

输入值:7

现在头部应该像这样引用这个节点:

头 -> 237 -> 空。

然后我再次使用相同的方法插入具有以下数据的新节点:

行:1

栏目:2

价值:9

现在我的结果应该是:HEAD -> 129 -> 237 -> NULL。

我怎样才能做到这一点?

我有以下代码:

typedef struct node     {
int     row;            /* element' s row */
int     column;         /* element's column*/
float   value;          /* Value of element*/
struct  node * next; } node;    /* next element */

typedef struct table{   
node *  head;                   
int     number_of_rows;         
int     number_of_columns;}table;




void insertNode(table * input) {

struct node *nod;

printf("Enter the number of rows: "); /*Nevermind for this */
scanf("%d" , &input->number_of_rows);

printf("Enter the number of columns : "); /*Nevermind for this */
scanf("%d" , &input->number_of_columns);

/* My question is about the following code */ 

printf("\n Enter the row : ");
scanf("%d" , &nod->row);

printf("Enter the column : ");
scanf("%d" , &nod->column);

printf("Enter the value : ");
scanf("%f" , &nod->value); }

我不知道如何使用 head 变量以及如何引用第一个节点,所以我没有使用其他变量。

标签: cdata-structureslinked-list

解决方案


您声明了一个结构指针,但没有使其指向有效的内存地址。更改struct node *nod;struct node *nod=malloc(sizeof(node));


推荐阅读