在平时生活中,我这边是很少使用到链表这种东西的。最常用的也就只是 一些 浮点数 的运算 和 一些控制逻辑
看了抖音上面关于链表的一些使用,于是想自己试一试。
看看能不能习惯用这种方式,最后能够将其使用在 现代控制理论 上面。
以下为一个创建x行y列的矩阵的代码。(未加显示)有缘者可以指点指点。
#include<stdio.h>
#include<stdlib.h>
//创建矩阵的结构体模板
struct link
{
int data;
struct link *row;
struct link *line;
};
//思路是这么滴:
//1.在确定创建 矩阵的大小 后 ,先创建第一个元素(1,1)位置,并将其作为head;
//2.然后依次创建 (2,1)(3,1)。。。
//3.再创建(1,2)(2,2)。。。。
// 需要 返回的是head , 用process接收输入的数据, 使用lin记录每一列下每行元素,
// 用ro去记录到了哪一行 。
struct link *creat(int x,int y)
{
struct link *head=NULL,*process=NULL,*ro=NULL,*lin=NULL;
int i=x,j=y;
if(0!=x*y)
{
head=(struct link*)malloc(sizeof(struct link));
scanf("%d",&head->data);
lin=head;
ro=head;
while(i!=1)
{
process=(struct link*)malloc(sizeof(struct link));
scanf("%d",&process->data);
process->row=NULL;
process->line=NULL;
i-=1;
lin->line=process;
lin=process;
}
while(j!=1)
{
i=x;
process=(struct link*)malloc(sizeof(struct link));
scanf("%d",&process->data);
process->line=NULL;
process->row=NULL;
ro->row=process;
ro=process;
lin=ro;
j-=1;
while(i!=1)
{
process=(struct link*)malloc(sizeof(struct link));
scanf("%d",&process->data);
process->row=NULL;
process->line=NULL;
i-=1;
lin->line=process;
lin=process;
}
}
return head;
}
else
return NULL;
}
void main()
{
struct link* a;
int hang,lie;
scanf("%d %d",&hang,&lie);
}