继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

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

慕粉152226940
关注TA
已关注
手记 72
粉丝 8
获赞 43

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

课程信息

课程内容概述

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. 示例

图片描述

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP