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

数据结构算法题day05

数据结构算法题day05

  • 题目
  • 算法思想
  • 代码
  • 运行代码

题目

从有序表中删除所有其值重复的元素,使表中所有元素的值均不同。

算法思想

第一个元素(不重复)依次向后扫描,不重复就保留,重复(不保留)就删除所有重复元素

代码

bool Del_same(Sqlist* L){int i = 0,j = 0;if(L -> length == 0)return false;for(i = 0,j = 1; j < L -> length; j++){if(L->data[i] != L->data[j]){	i++;L->data[i] = L->data[j];			}		}L->length = i + 1;return true;
}

运行代码

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#define MaxSize 10//定义最大长度
int InitArr[10] = { 1,2,2,3,4,2,5,2,6,7 };typedef struct {int data[MaxSize];//用静态的数据存放数据元素int length;//顺序表当前长度
}Sqlist;//顺序表的类型定义void print(Sqlist* L)
{for (int i = 0;i < L->length;i++){printf("%d ", L->data[i]);}
}
//初始化一个顺序表
void InitList(Sqlist* L)
{for (int i = 0;i < MaxSize;i++){L->data[i] = InitArr[i];//将所有数据元素设置为默认初始值}L->length = 10;//顺序表初始长度为0
}
//对长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,
//该算法删除线性表中的所有值为x的数据元素//算法思路
bool Del_t(Sqlist* L ,int s ,int t){int i = 0, k = 0;if (L -> length == 0 || s >= t)return false;for(i = 0; i < L -> length ; i++){if(L -> data[i] >= s && L -> data[i] <= t)k++;else L -> data[i-k] = L -> data[i];//将元素移动K个单位}L-> length = L->length - k;return true;
}
bool Del_same(Sqlist* L){int i = 0,j = 0;if(L -> length == 0)return false;for(i = 0,j = 1; j < L -> length; j++){if(L->data[i] != L->data[j]){	i++;L->data[i] = L->data[j];}		}L->length = i + 1;return true;
}int main() 
{Sqlist L;InitList(&L);//初始化一个顺序表:1,2,2,3,4,2,5,2,6,7printf("初始顺序表为:");print(&L);printf("\n");	Del_same(&L);printf("删除重复值后的元素后顺序表为:");print(&L);return 0;
}
http://www.lryc.cn/news/357970.html

相关文章:

  • 关于《Java并发编程之线程池十八问》的补充内容
  • 扒出秦L三个槽点,我不考虑买它了
  • 【408真题】2009-28
  • LeetCode---链表
  • idea 快捷键运用
  • k8s问题
  • 串口通信问题排查总结
  • 【教学类-59-】专注力视觉训练01(圆点百数图)
  • C 语言实例 - 循环输出26个字母
  • qt多语言翻译不生效的原因
  • springboot集成达梦数据库8,用springboot+mtbatisplus查询值为空
  • C语言-----指针数组 \ 数组指针
  • Go语言 gRPC 简述
  • 信息系统项目管理师0136:工具与技术(8项目整合管理—8.9结束项目或阶段—8.9.2工具与技术)
  • appium-driver方法待整理。。
  • Android Ktor 网络请求框架
  • 交互设计如何助力传统技艺在当代复兴?
  • 使用 Django Rest Framework 构建强大的 Web API
  • 老师如何对付挑事儿的家长?
  • 若安装了Python3且没有删除Python2,那么启动yum命令会报错:
  • JVM(四)
  • Leetcode373.查找和最小的 K 对数字
  • windows 安装 使用 nginx
  • 【运维】Linux 端口管理实用指南,扫描端口占用
  • Android笔记--应用安装
  • 今日分享站
  • 基于python flask的旅游数据大屏实现,有爬虫有数据库
  • 海尔智家牵手罗兰-加洛斯,看全球创牌再升级
  • 【busybox记录】【shell指令】unlink
  • 如何恢复被盗的加密货币?