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

微信服务号绑定网站百度搜索推广官网

微信服务号绑定网站,百度搜索推广官网,珠海市网站,服务器打不开网站纯C语言代码,不涉及C 1. 初始化 #define MaxSize 50 typedef int ElemType; typedef struct SQList { ElemType data[MaxSize]; //定义一个数组存放顺序表元素 int length; //顺序表当前的长度(元素个数…

   纯C语言代码,不涉及C++   

1. 初始化   

#define MaxSize 50
typedef int ElemType;

typedef struct SQList {
    ElemType data[MaxSize];    //定义一个数组存放顺序表元素
    int length;                            //顺序表当前的长度(元素个数)
}SqList;                                   //给顺序表SQList起别名为SqList

void InitSqList(SqList* L) {  //初始化操作
    L->length = 0;  //顺序表初始化长度为0
}

2. 插入   

即:在第pos个位置插入value值,即在数组下标pos-1的位置插入value值

int InsertSqList(SqList* L, int pos, ElemType value) {//1.判断插入位置是否合法if (pos < 1 || pos > L->length + 1) {return -1; // 插入位置不合法}//2.判断顺序表存储空间是否满了if (L->length >= MaxSize) {return -2; // 顺序表空间已满}//3.将第pos个位置及往后的元素都后移一个位置,空出第pos个位置(这里采用逆序遍历)for (int i = L->length; i >= pos; i--) {L->data[i] = L->data[i - 1];}//4.插入数据L->data[pos - 1] = value;//5.表长加1L->length++;return 0; // 插入成功
}

3. 按位查找   

即:即返回第pos个位置(数组下标为pos-1)对应的value值

int findValueByPos(SqList* L, int pos, ElemType* value) {//1.判断要查找的位置是否合理if (pos < 1 || pos > L->length) {return -1; // 查找位置不合法}//2.查找第pos个位置对应的value值*value = L->data[pos - 1];return 0; // 查找成功
}

4. 按值查找   

即:即返回value值的位序,即第几个,下标加1

int findPosByValue(SqList* L, ElemType value) {for (int i = 0; i < L->length; i++) {if (L->data[i] == value) {return i + 1;}}return -1; // 未找到该值
}

5. 删除   

即:将第pos个的值赋值给value后腾开第pos个位置
然后将第pos个后的数据都往前移一个位置,填补第pos个位置

int deleteSqList(SqList* L, int pos, ElemType* value) {//1.判断要删除的位置是否合理,即是否在存有数据的范围里if (pos < 1 || pos > L->length) {return -1; // 删除位置不合法}//2.判断空间是否为空if (L->length == 0) {return -2; // 顺序表空间为空}//3.将被删除的元素赋值给value*value = L->data[pos - 1];//4.将第pos个位置往后的元素都前移一个位置for (int i = pos; i < L->length; i++) {L->data[i - 1] = L->data[i];}

6. 注销   

注意:由于顺序表采用的是静态分配方式,L->data 是一个数组,并非动态分配的内存,所以不能使用 free(L->data) 来释放内存。同时,L 是在栈上分配的,也不能使用 free(L) 释放。

void  destroySqList(SqList* L) {//静态分配无需释放内存if (L != NULL){L->length = 0;}
}

7. 打印顺序表

void printSqList(SqList* L) {  //让打印的最后一个元素末尾没有空格if (L->length == 0) {printf("当前顺序表为空!\n");}else {for (int i = 0; i < L->length; i++) {if (i == L->length - 1) {printf("%d", L->data[i]);}else {printf("%d ", L->data[i]);}}printf("\n");}printf("--------------------------------------------------\n");
}

9. 测试代码   

int main() {SqList L;InitSqList(&L);//插入数据测试InsertSqList(&L, 1, 18);InsertSqList(&L, 2, 7);InsertSqList(&L, 3, 34);printSqList1(&L);  //18 7 34//删除数据测试ElemType value;deleteSqList(&L, 2,&value);printSqList1(&L);  //18 34//查找位置1的值是什么ElemType val = findValueByPos(&L, 1);  printf("%d\n",val);  //18//查找值18在顺序表的第几个位置int pos = findPosByValue(&L,18);printf("%d\n", pos);  //1//销毁顺序表destroySqList(&L);return 0;
}

10. 完整代码   

#include <stdio.h>
#include <stdlib.h>/*静态分配的顺序表
*/#define MaxSize 50
typedef int ElemType;typedef struct SQList {ElemType data[MaxSize];  //定义一个数组存放顺序表元素int length;              //顺序表当前的长度(元素个数)
} SqList; //给顺序表SQList起别名为SqList//操作1——初始化
void InitSqList(SqList* L) {L->length = 0;  //顺序表初始化长度为0
}//操作2——插入:在第pos个位置插入value值,即在数组下标pos-1的位置插入value值
int InsertSqList(SqList* L, int pos, ElemType value) {//1.判断插入位置是否合法if (pos < 1 || pos > L->length + 1) {return -1; // 插入位置不合法}//2.判断顺序表存储空间是否满了if (L->length >= MaxSize) {return -2; // 顺序表空间已满}//3.将第pos个位置及往后的元素都后移一个位置,空出第pos个位置(这里采用逆序遍历)for (int i = L->length; i >= pos; i--) {L->data[i] = L->data[i - 1];}//4.插入数据L->data[pos - 1] = value;//5.表长加1L->length++;return 0; // 插入成功
}//操作3——按位查找,即返回第pos个位置对应的value值
int findValueByPos(SqList* L, int pos, ElemType* value) {//1.判断要查找的位置是否合理if (pos < 1 || pos > L->length) {return -1; // 查找位置不合法}//2.查找第pos个位置对应的value值*value = L->data[pos - 1];return 0; // 查找成功
}//操作4——按值查找,即返回value值的位序,即第几个,下标加1
int findPosByValue(SqList* L, ElemType value) {for (int i = 0; i < L->length; i++) {if (L->data[i] == value) {return i + 1;}}return -1; // 未找到该值
}//操作5——删除:将第pos个的值赋值给value后腾开第pos个位置
// 然后将第pos个后的都数据往前移一个位置,填补第pos个位置
int deleteSqList(SqList* L, int pos, ElemType* value) {//1.判断要删除的位置是否合理,即是否在存有数据的范围里if (pos < 1 || pos > L->length) {return -1; // 删除位置不合法}//2.判断空间是否为空if (L->length == 0) {return -2; // 顺序表空间为空}//3.将被删除的元素赋值给value*value = L->data[pos - 1];//4.将第pos个位置往后的元素都前移一个位置for (int i = pos; i < L->length; i++) {L->data[i - 1] = L->data[i];}//4.表长减1L->length--;return 0; // 删除成功
}//操作6——注销
void destroySqList(SqList* L) {//静态分配无需释放内存if (L != NULL) {L->length = 0;}
}//操作7——打印顺序表里存放的数据
void printSqList(SqList* L) {if (L->length == 0) {printf("当前顺序表为空!\n");}else {for (int i = 0; i < L->length; i++) {if (i == L->length - 1) {printf("%d", L->data[i]);}else {printf("%d ", L->data[i]);}}printf("\n");}printf("--------------------------------------------------\n");
}//测试
int main() {SqList L;InitSqList(&L);//插入数据测试if (InsertSqList(&L, 1, 18) != 0) {printf("插入失败!\n");}if (InsertSqList(&L, 2, 7) != 0) {printf("插入失败!\n");}if (InsertSqList(&L, 3, 34) != 0) {printf("插入失败!\n");}printSqList(&L);  //18 7 34//删除数据测试ElemType value;if (deleteSqList(&L, 2, &value) != 0) {printf("删除失败!\n");}printSqList(&L);  //18 34//查找位置1的值是什么ElemType val;if (findValueByPos(&L, 1, &val) == 0) {printf("%d\n", val);  //18}else {printf("查找失败!\n");}//查找值18在顺序表的第几个位置int pos = findPosByValue(&L, 18);if (pos != -1) {printf("%d\n", pos);  //1}else {printf("未找到该值!\n");}//销毁顺序表destroySqList(&L);return 0;
}

11. 运行截图

如有问题,欢迎指出!

谢谢!

http://www.dinnco.com/news/25243.html

相关文章:

  • 网站外链优化方法宣传推广方案
  • 邯郸网站建设哪家强百度北京总部电话
  • 三亚房产网站建设百度app下载安装 官方
  • wordpress 语法搜索引擎优化与关键词的关系
  • 购买网站服务器德兴网站seo
  • 怎么做美食的网站产品推广平台
  • 微网站平台怎样做网站一般的电脑培训班要多少钱
  • 织梦 网站栏目管理 很慢体彩足球竞彩比赛结果韩国比分
  • 深圳戈麦斯网站开发semir是什么意思
  • 在线教育网站平台建设的意义手机端网站排名
  • 表白网站怎样做有创意企业网络营销策划方案
  • 三好街做网站公司网推一手单渠道
  • 郑州专业做微信网站北京网站优化
  • 太原网站建设 世纪优创新闻发稿
  • 网站空间 控制面板短视频推广
  • 网站设计软件开发搜索引擎有哪些技巧
  • 做卡盟网站教程百度实名认证
  • 微信网站开发登录互动营销的概念
  • 做网站就上凡科建设站长统计官网
  • 潍坊网站建设建站线上推广渠道有哪些方式
  • 做旅游网站的关注与回复自己如何做一个网站
  • DW做注册网站如何优化关键词排名到首页
  • 科技网络网站建设嘉兴seo外包服务商
  • 网站建设公司优势互联网广告营销
  • 亚马逊备案网站建设教育培训机构管理系统
  • 学计算机月薪一般多少百度seo和谷歌seo有什么区别
  • 怎么建设手机电影网站百度明星搜索量排行榜
  • 网站系统免费百度移动排名优化软件
  • 网站制作窍门百度投稿平台
  • dede网站名称更改不了网络营销网站建设案例