#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华清远见作业相关推荐

  1. 20230330华清远见作业

    作业1:单链表的按位置修改 思路:参数:L pos e 1,判断链表是否存在 2,判断链表是否为空 3,判断位置是否合法 4,找到pos起名字p 5. 修改p的数据域:重新赋值 作业2:单链表的按元素 ...

  2. 20230322华清远见作业

    作业1:定义有参函数实现,主调函数中输入两个数据,通过函数调用,交换该两个变量的值,主调函数输出交换后的结果 #include<stdio.h> #include<stdlib.h& ...

  3. 20230317华清远见作业

    作业1:输出从起始值到终止值之间,所有能被3或5整除的所有数,起始值和终止值由用户输入 #include<stdio.h> #include<string.h> #includ ...

  4. 20230319华清远见作业

    作业1:输出从起始值到终止值之间,所有能被3或5整除的所有数,起始值和终止值由用户输入 #include<string.h> #include<stdio.h> #includ ...

  5. 20230327华清远见作业

    1.在堆区申请2个字符类型的大小为20字节的空间. 1> 定义函数,实现在堆区申请空间 2> 定义函数,输入两个字符串 3> 定义函数,计算两个字符串的长度[非函数] sizeof_ ...

  6. 20230403华清远见作业

    1.进制转换 #ifndef __HEAD_H_ #define __HEAD_H_#include <stdio.h> #include <string.h> #includ ...

  7. 20230223华清远见作业

    仿照str系列函数,完成自定义的mystrlen .mystrcmp.mystrcpy,mystrcat. mystrlen #include<stdio.h> #include<s ...

  8. 20230331华清远见作业

    #include "head.h" int main(int argc, const char *argv[]) {doublelink l =create_head();int ...

  9. 阶段总结:华清远见毕业总结

    在毕业之际,苦于自身水平不足,不够完善的技能不足以在就业形势严峻的今天找到一份适合的工作,由于我是一个电子信息工程专业出身的学生,在学校里通过专业选修等课程接触到了单片机和嵌入式等课程,从而产生了一点 ...

最新文章

  1. xps 9550 uefi 安装操作系统详解
  2. 《偷梁换柱》全世界最最简单对付SMSS。EXE病毒的方法,可能也是对付某类流氓程序的好方法...
  3. python给多个子图加总标题
  4. ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
  5. nginx https 配置
  6. gitz之忽略warning:LF will be replaced by CRLF
  7. sql如何在两张表中得到每组数据,并知道数据的个数,举例,判断有多少班级,每个班的人数
  8. 微星MSI电脑(GL63 8RE-416CN)打开BIOS隐藏的高级设置方法
  9. Linux常用软件包管理器命令
  10. Windows安装本地组策略编辑器
  11. python如何打开excel表格_python怎么读取excel表格
  12. 倒立摆c语言程序设计,清华大学倒立摆控制系统实验指导书.pdf
  13. 《灵飞经》②东岛门人 第四章 星隐真人
  14. IPFS独角兽西部世界解读:销毁的近2000万FIL去哪里了?
  15. Eclipse插件开发_学习_02_GEF入门实例
  16. Ubuntu 测网速
  17. 从零开始VCS+Verdi 安装过程
  18. 虚拟机安装ros时候出现“The directory ‘/home/xxx/.cache/pip‘...”的问题解决方法(亲测有用)
  19. 战地4 网页服务器地址,战地4修改的服务器地址
  20. 弱电机房可视化监控综合管理系统设计方案

热门文章

  1. C#用代码简单完成敌方巡逻
  2. badger (一个高性能的LSM K/V store)使用指南
  3. 智能汽车「利好」数据服务,特斯拉/英伟达/大众都在布局
  4. ubuntu16.04源码编译linphone库的过程
  5. 计算机图形学与opengl C++版 学习笔记 第14章 其他技术
  6. matlab求能量,matlab实现无线传感器网络DV-HOP算法中如何计算能量损耗
  7. java下载本地文件xlsx
  8. 什么是Joomla?
  9. 论文阅读:X-ray2Shape: Reconstruction of 3D Liver Shape from a Single 2D Projection Image
  10. Java程序员必备奇淫巧技篇(上)