当前位置: 首页 > news >正文

数据结构D3作业

1.

2.

按位插入

void insert_pos(seq_p L,datatype num,int pos)
{
    if(L==NULL)
    {
        printf("入参为空,请检查\n");
        return;
    }
    if(seq_full(L)==1)
    {
        printf("表已满,不能插入\n");
        return;
    }
    if(pos==0)
    {
        insert_head(L,num);
        return;
    }
    if(pos>=L->len)
    {
        printf("无法插入:位置不合理\n");
        return;
    }
    if(pos==L->len)
    {
        insert_tail(L,num);    
        return;
    }
    for(int i=L->len-1;i>=pos;i--)
    {
        L->data[i+1]=L->data[i];
    }
    L->data[pos]=num;
    L->len++;
}


按位删除

void del_pos(seq_p L,int pos)
{
    if(L==NULL)
    {
        printf("入参为空\n");
        return;
    }
    if(pos>=L->len)
    {
        printf("位置不合理\n");
        return;
    }
    if(pos==0)
    {
        del_head(L);
        return;
    }
    if(pos==L->len-1)
    {
        del_tail(L);
        return;
    }
    for(int i=pos;i<=L->len-1;i++)
    {
        L->data[i]=L->data[i+1];
    }
    L->len--;
}


去重

void del_rep(seq_p L)
{

    if(L==NULL)
    {
        printf("入参为空\n");
        return;
    }
    for(int i=0;i<L->len;i++)
    {
        for(int j=i+1;j<L->len;j++)
        {
            if(L->data[i]==L->data[j])
            {
            del_pos(L,j);
            j--;
            }
        }
    }
}

3.

link.c

voidlink.c insert_head(link_p H,datatype data)
{
    if(H==NULL)
    {
        printf("入参为空\n");
        return;
    }
    link_p new=create_node(data);
    new->next=H->next;
    H->next=new;
    H->len++;
}

尾插:

void insert_tail(link_p H,datatype data)
{
    link_p temp=H;
    for(int i=0;i<H->len;i++)
    {
        temp=temp->next;
    }
    link_p new=create_node(data);
    temp->next=new;
    new->next=NULL;
    H->len++;
}

输出

void put_link(link_p H)
{
    link_p temp=H;
    for(int i=0;i<H->len;i++)
    {
        temp=temp->next;
        printf("%d\t",temp->data);
    }
    printf("\n");
}
main.c

#include "link.h"
int main()
{
    link_p H=create_head();
    insert_head(H,2);
    insert_head(H,1);
    insert_tail(H,3);
    put_link(H);
    return 0;
}


 

http://www.lryc.cn/news/304317.html

相关文章:

  • Spring框架@Autowired注解进行字段时,使用父类类型接收子类变量,可以注入成功吗?(@Autowired源码跟踪)
  • 【springblade】springblade(bladeX) 数据权限失效原因分析
  • 单例模式的几种实现方式
  • 鸿蒙OS运行报错 ‘ToDoListItem({ item })‘ does not meet UI component syntax.
  • React18源码: reconciler执行流程
  • mapbox面图层标注
  • MySQL|MySQL基础(求知讲堂-学习笔记【详】)
  • 10.docker exec -it /bin/bash报错解决、sh与bash区别
  • 查询数据库的编码集Oracle,MySQL
  • 电商数据采集+跨境电商|API电商数据采集接口洞悉数字新零售发展
  • linux之用户和用户组
  • 人工智能深度学习
  • python reshape 和 transpose的区别
  • 音视频技术-网络视频会议“回声”的消除
  • 有哪些令人惊讶的心理学效应
  • 二叉树基础知识总结
  • IDEA2023.3.4开启SpringBoot项目的热部署【简单明了4步操作】
  • QT中调用python
  • Sora基础知识学习
  • 开源博客项目Blog .NET Core源码学习(9:Autofac使用浅析)
  • Go语言中的TLS加密:深入crypto/tls库的实战指南
  • 网络原理-TCP/IP(7)
  • HarmonyOS4.0系列——08、整合UI常用组件
  • 【Spring Boot 3】【JPA】一对多单向关联
  • 工信部等九部门:打造一批实现制造过程数字孪生的数字化转型标杆工厂
  • 并发编程(2)基础篇-管程
  • OpenAI文生视频大模型Sora概述
  • [linux]进程间通信(IPC)———共享内存(shm)(什么是共享内存,共享内存的原理图,共享内存的接口,使用演示)
  • Go 原子操作有哪些?
  • 爬虫知识--02