今天的学习内容依然很少,进度已经落后了别人许多啊,可是身体依旧没有好转的迹象,反而越来越差。
今天听了学长讲的搜索,但是依然不是很理解,所以今天的学习记录就来记录链表吧。首先得先明白malloc的使用,在c语言中可以使用指针和动态分配函数malloc来实现。需要注意的是malloc函数的返回类型是void *类型。(记得带头文件stdlib.h)。
我对链表的理解就是插入一个数的话更加方便,因为链表是对一个整体的移动。但是由于今天比昨天更加不适,指针链表我依然没有理解透彻,于是在这写模拟链表的代码,指针链表以后再补上。
#include <stdio.h>
int date[101],right[101];
int main()
{
int i;
int n;
int count;
scanf("%d",&n);
for(i = 0; i < n; i++)
{
if(i != n)
{
right[i] = i + 1;
}else{
right[i] = 0;
}
}//在链表末尾加一个数
count++;
scanf("%d",date[count]);
int temp = 1;
//遍历链表
while(temp != 0)
{
if(date[right[temp]] > date[count])//若当前节点下一个节点的值大于插入的数,将数插入到中间
{
right[count] = right[temp];//新插入的数下一个节点标号等于当前节点的下一节点标号
right[temp] = count;
break;
}
temp = right[temp];
}//对链表进行输出操作
temp = 1;
while(temp != 0)
{
printf("%d ",date[temp]);
temp = right[temp];
}
return 0;
}
最开始写这种插入题的时候都是提前把数组扩大,再将数插入到最后一位,遍历数组进行比较,再将数插入合适的位置,和链表思想也有点相似吧。
深度搜索和广度搜索就留着明天熟悉再一并写出。