【备战春招】第13天 嵌入式工程师学习笔记

2023/2/20 3:20:37

本文主要是介绍【备战春招】第13天 嵌入式工程师学习笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

【备战春招】第13天 嵌入式工程师学习笔记

课程信息

  • 课程名称:物联网/嵌入式工程师
  • 章节名称:第5周之第一讲 1-9&10 顺序表之判空、删除
  • 讲师姓名:大白老师

课程内容概述

1. 简介

本节介绍了C语言中的顺序表之判空、删除。

2. 删除操作图形示例

图片描述

3. 代码示例

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX 3
struct student
{
    char name[20];
    int id;
    int age;
};
typedef struct student datatype_t;
typedef struct
{
    datatype_t num[MAX];
    int n;
}seqlist_t;
seqlist_t * creat_seqlist()
{
    seqlist_t *l=NULL;
    l=(seqlist_t *)malloc(sizeof(seqlist_t));
    if(NULL==l)
    {
        printf("malloc is failed\n");
        return NULL;
    }
    memset(l,0,sizeof(seqlist_t));
    return l;
}
int full_list(seqlist_t *l)
{
    return l->n==MAX?1:0;
}
int empty_list(seqlist_t*l)
{
    return l->n==0?1:0;
}
int delete_list(seqlist_t*l,int id)
{
    if(empty_list(l))
    {
        return -2;
    }
    int i,j=0;
    for(i=0;i<l->n;i++)
    {
        if(l->num[i].id!=id)
        {
            l->num[j]=l->num[i];
            j++;
        }
    }
    l->n=j;
    if(i==j)
    {
        return -1;
    }else{
        printf("delete %d is successful!\n",id);
    }
}
void insert_seqlist(seqlist_t *l,datatype_t data)
{
    strcpy(l->num[l->n].name,data.name);
    l->num[l->n].id=data.id;
    l->num[l->n].age=data.age;
    l->n++;
}
void printf_list(seqlist_t *l)
{
    for(int i=0;i<l->n;i++)
    {
        printf("%s\t%d\t%d\n",l->num[i].name,l->num[i].id,l->num[i].age);
    }
}

int main()
{
    seqlist_t *l=NULL;
    l=creat_seqlist();
    datatype_t data;
    printf("please input tree data:");
    while(!full_list(l))
    {
        scanf("%s%d%d",data.name,&data.id,&data.age);
        insert_seqlist(l,data);
    }
    int ret;
    printf("next step: delete one data, please input one data:");
    scanf("%d",&data.id);
    ret=delete_list(l,data.id);
    if(ret<0)
    {
        printf("no data or the num is empty!\n");
        return -1;
    } else {
        printf_list(l);
        free(l);
        l=NULL;
        return 0;
    }
}

运行结果

please input tree data:张三 1 23 李四 2 24 王五 3 25
next step: delete one data, please input one data:李四 2 24
delete 3 is successful!
张三    1       23
李四    2       24

学习心得

C语言中的数据结构,实践练习了顺序表之判空、删除,感觉很有收获。

课程截图

1. 示例

图片描述



这篇关于【备战春招】第13天 嵌入式工程师学习笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程