12月29日学习记录

  今天的学习内容依然很少,进度已经落后了别人许多啊,可是身体依旧没有好转的迹象,反而越来越差。

  今天听了学长讲的搜索,但是依然不是很理解,所以今天的学习记录就来记录链表吧。首先得先明白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;
}

最开始写这种插入题的时候都是提前把数组扩大,再将数插入到最后一位,遍历数组进行比较,再将数插入合适的位置,和链表思想也有点相似吧。

深度搜索和广度搜索就留着明天熟悉再一并写出。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值