20230329华清远见作业
#include "head.h"int main(int argc, const char *argv[])
{seqlist *list =create();//循环在尾部插入int n=0;datatype num=0;printf("请输入元素的个数:");scanf("%d",&n);printf("\n");for(int i=0;i<n;i++){printf("请输入要输入的第%d个值:",i+1);scanf("%d",&num);my_insert(list,num);}my_output(list);
//=============================================
//按元素来查找下标datatype key;printf("请输入要删除的元素:");scanf("%d",&key);int index = my_search(list,key);if(index==-1){printf("查找失败!\n");}else{printf("\n");printf("所要删除的元素的下标为:%d\n",index);}printf("\n");//按元素来删除my_delete(list,index);printf("删除后顺序表存储的元素为:\n\n");my_output(list);//冒泡排序my_paixu(list);printf("排序后的元素为:");my_output(list);return 0;
}
#ifndef __HEAD_H_
#define __HEAD_H_#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>#define MAXSIZE 7 //线性表长度typedef int datatype; //给int起的别名//定义顺序表:数据元素 顺序表长度
typedef struct
{
//数据元素datatype data[MAXSIZE];
//顺序表长度int len;
}seqlist;seqlist *create();
int my_full(seqlist *list);
int my_empty(seqlist *list);
int my_insert(seqlist *list,datatype num);
void my_output(seqlist *list);//===========================================
int my_search(seqlist *list,datatype key);
int my_delete(seqlist *list,int index);void my_paixu(seqlist *list);#endif
#include "head.h"/** function: 在堆区申请顺序表* @param [ in] 申请一个顺序表空间* @param [out] * @return 成功返回地址,失败返回NULL*/
seqlist *create()
{seqlist *list=(seqlist *)malloc(sizeof(seqlist));if(list==NULL)return NULL;list->len=0; //清空顺序表return list;
}/** function: 判断顺序表是否满* @param [ in] 顺序表* @param [out] * @return 成功返回0,失败返回-1*/
int my_full(seqlist *list)
{return list->len==MAXSIZE?-1:0;
}/** function: 判断顺序表是否空* @param [ in] 顺序表* @param [out] * @return 成功返回0,失败返回-1*/
int my_empty(seqlist *list)
{return list->len==0?-1:0;
}/** function: 在尾部插入* @param [ in] 顺序表 插入的值num* @param [out] * @return 成功返回0,失败返回-1*/
int my_insert(seqlist *list,datatype num)
{//首先判断顺序表是否为满,顺序表为满时插入失败if(my_full(list)){printf("顺序表已满,插入失败!\n");return -1;}list->data[list->len]=num;list->len++;return 0;
}
/** function: 顺序表输出* @param [ in] 顺序表* @param [out] * @return 无返回值*/
void my_output(seqlist *list)
{printf("\n");for(int i=0;i<list->len;i++){printf("%d\t",list->data[i]);}printf("\n");printf("\n");}//========================================
/** function: 按元素来查找下标* @param [ in] 顺序表 所需要查找的元素* @param [out] * @return 成功返回0,失败返回-1*/
int my_search(seqlist *list,datatype key)
{for(int i=0;i<list->len;i++){if(list->data[i]==key){return i;}}return -1;
}
/** function: 按元素来删除* @param [ in] 顺序表 下标* @param [out] * @return 成功返回0,失败返回-1*/
int my_delete(seqlist *list,int index)
{//首先来判断顺序表是否为空//再来判断顺序表下标是否合法if(my_empty(list)||index<0||index>=list->len){printf("删除失败!");return -1;}//删除,循环前移for(int i=index+1;i<list->len;i++){list->data[i-1]=list->data[i];}list->len--;
}
//===========================================
/** function: 顺序表排序* @param [ in] 顺序表* @param [out] * @return 无返回值*/
void my_paixu(seqlist *list)
{for(int i=1;i<list->len;i++){int count=0;for(int j=0;j<list->len-i;j++){if(list->data[j]>list->data[j+1]){datatype number=list->data[j];list->data[j]=list->data[j+1];list->data[j+1]=number;count++;}}if(count==0)break;}
}
20230329华清远见作业相关推荐
- 20230330华清远见作业
作业1:单链表的按位置修改 思路:参数:L pos e 1,判断链表是否存在 2,判断链表是否为空 3,判断位置是否合法 4,找到pos起名字p 5. 修改p的数据域:重新赋值 作业2:单链表的按元素 ...
- 20230322华清远见作业
作业1:定义有参函数实现,主调函数中输入两个数据,通过函数调用,交换该两个变量的值,主调函数输出交换后的结果 #include<stdio.h> #include<stdlib.h& ...
- 20230317华清远见作业
作业1:输出从起始值到终止值之间,所有能被3或5整除的所有数,起始值和终止值由用户输入 #include<stdio.h> #include<string.h> #includ ...
- 20230319华清远见作业
作业1:输出从起始值到终止值之间,所有能被3或5整除的所有数,起始值和终止值由用户输入 #include<string.h> #include<stdio.h> #includ ...
- 20230327华清远见作业
1.在堆区申请2个字符类型的大小为20字节的空间. 1> 定义函数,实现在堆区申请空间 2> 定义函数,输入两个字符串 3> 定义函数,计算两个字符串的长度[非函数] sizeof_ ...
- 20230403华清远见作业
1.进制转换 #ifndef __HEAD_H_ #define __HEAD_H_#include <stdio.h> #include <string.h> #includ ...
- 20230223华清远见作业
仿照str系列函数,完成自定义的mystrlen .mystrcmp.mystrcpy,mystrcat. mystrlen #include<stdio.h> #include<s ...
- 20230331华清远见作业
#include "head.h" int main(int argc, const char *argv[]) {doublelink l =create_head();int ...
- 阶段总结:华清远见毕业总结
在毕业之际,苦于自身水平不足,不够完善的技能不足以在就业形势严峻的今天找到一份适合的工作,由于我是一个电子信息工程专业出身的学生,在学校里通过专业选修等课程接触到了单片机和嵌入式等课程,从而产生了一点 ...
最新文章
- xps 9550 uefi 安装操作系统详解
- 《偷梁换柱》全世界最最简单对付SMSS。EXE病毒的方法,可能也是对付某类流氓程序的好方法...
- python给多个子图加总标题
- ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
- nginx https 配置
- gitz之忽略warning:LF will be replaced by CRLF
- sql如何在两张表中得到每组数据,并知道数据的个数,举例,判断有多少班级,每个班的人数
- 微星MSI电脑(GL63 8RE-416CN)打开BIOS隐藏的高级设置方法
- Linux常用软件包管理器命令
- Windows安装本地组策略编辑器
- python如何打开excel表格_python怎么读取excel表格
- 倒立摆c语言程序设计,清华大学倒立摆控制系统实验指导书.pdf
- 《灵飞经》②东岛门人 第四章 星隐真人
- IPFS独角兽西部世界解读:销毁的近2000万FIL去哪里了?
- Eclipse插件开发_学习_02_GEF入门实例
- Ubuntu 测网速
- 从零开始VCS+Verdi 安装过程
- 虚拟机安装ros时候出现“The directory ‘/home/xxx/.cache/pip‘...”的问题解决方法(亲测有用)
- 战地4 网页服务器地址,战地4修改的服务器地址
- 弱电机房可视化监控综合管理系统设计方案
热门文章
- C#用代码简单完成敌方巡逻
- badger (一个高性能的LSM K/V store)使用指南
- 智能汽车「利好」数据服务,特斯拉/英伟达/大众都在布局
- ubuntu16.04源码编译linphone库的过程
- 计算机图形学与opengl C++版 学习笔记 第14章 其他技术
- matlab求能量,matlab实现无线传感器网络DV-HOP算法中如何计算能量损耗
- java下载本地文件xlsx
- 什么是Joomla?
- 论文阅读:X-ray2Shape: Reconstruction of 3D Liver Shape from a Single 2D Projection Image
- Java程序员必备奇淫巧技篇(上)