c - 链表用户插入节点 (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 变量以及如何引用第一个节点,所以我没有使用其他变量。
解决方案
您声明了一个结构指针,但没有使其指向有效的内存地址。更改struct node *nod;
为struct node *nod=malloc(sizeof(node));
推荐阅读
- python - 为什么 geopandas.read_file 在 windows 和 linux 上返回不同的结果?
- javascript - 根据数组中的键连接并删除一些 json 元素
- javascript - 检测点击焦点
- java - Spring mvc项目未运行
- html - 如何将表中的行作为具有 ng-repeat 的 html 中的列
- sql - 如何创建儿童计数的索引视图
- javascript - 在javascript中序列化“没有冒号的对象”而不会丢失内部功能
- python - 如何解决python中的[Errno 13] Permission denied错误
- vue.js - 命名空间模块可以处理对根命名空间的突变吗?
- r - 通过 R Studio 基于变量创建两个新数据集(CSV 文件)