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

什么叫展示型网站购物网站开发问题

什么叫展示型网站,购物网站开发问题,上海网站建设公司推,企业宣传片文案数据结构的动态顺序表有以下几个操作#xff1a;创建#xff0c;销毁#xff0c;初始化#xff0c;增删查改和打印以及内存空间不够时的扩容 本文的宏定义#xff1a; #define SeqTypeData int 1.动态顺序表的创建 typedef struct SeqListInit{//动态顺序表的创建SeqT…数据结构的动态顺序表有以下几个操作创建销毁初始化增删查改和打印以及内存空间不够时的扩容 本文的宏定义 #define SeqTypeData int 1.动态顺序表的创建 typedef struct SeqListInit{//动态顺序表的创建SeqTypeData* a;int size;//实际有效空间int capacity;//申请空间大小 }SL; 2.动态顺序表的销毁 void SeqListDestroy(SL* ps) {//顺序表销毁free(ps-a);ps-a NULL;ps-capacity ps-size 0; }; 值得注意的是ps-a要赋值NULL避免野指针的出现。 3.动态顺序表的初始化 void SeqListInit(SL* ps){//顺序表初始化ps-a NULL;ps-capacity ps-size 0; }; 4.动态顺序表的增加 插入时都要判断空间是否足够是否需要扩容以及ps-size要加一。 1头插 void SeqListPushFront(SL* ps, SeqTypeData x) {//顺序表头插SeqListCheckCapacity(ps);//判断是否需要扩容//挪动数据ps-size;for (int i 0; i ps-size; i) {ps-a[ps-size - i] ps-a[ps-size - i - 1];}ps-a[0] x; } 头插也就是把数据都向后挪一位再给第一位赋值。 2尾插 void SeqListPushBack(SL* ps, SeqTypeData x) {//顺序表尾插SeqListCheckCapacity(ps);//判断是否需要扩容ps-a[ps-size] x; } 3任意位置插入 void SeqListInsert(SL* ps, int adr, SeqTypeData x)//adr为逻辑地址等于数组下标加一 {if (adr (ps-size 1) || adr 1){printf(adr invalid\n);return;}SeqListCheckCapacity(ps);//判断是否需要扩容int end ps-size ;while (end adr-1){ps-a[end 1] ps-a[end];--end;}ps-a[adr-1] x;ps-size; } 任意位置插入要记得判断插入位置的合法性再将插入位置的数据向后移一位再在插入位置赋值即可。 5.动态顺序表的删除 进行删除操作时要判断表是否已经是空表此时不可再删。删除成功时ps-size减一。 1头删 void SeqListPopFront(SL* ps) {//顺序表头删if (ps-size 0){printf(顺序表为空不可再删\n);}else{for (int i 0; i ps-size; i) {ps-a[i] ps-a[i1];}ps-size--;} } 2尾删 void SeqListPopBack(SL* ps) {//顺序表尾删if (ps-size--);else{printf(顺序表为空不可再删\n);} } 3任意位置删除 void SeqListErase(SL* ps, int adr) {if (ps-size 0){printf(顺序表为空不可再删\n);}if (adr (ps-size 1)){printf(删除位置错误\n);}for (int i adr; i ps-size; i) {ps-a[i-1] ps-a[i];}ps-size--; } 任意位置的删除也要检验删除位置的合法性。 6.动态顺序表的任意位置的修改 void SeqListCheck(SL* ps, int adr, SeqTypeData x) {//adr为逻辑地址等于数组下标加一if(adr(ps-size1))printf(修改位置错误\n);elseps-a[adr - 1] x; }任意位置的修改也要检验删除位置的合法性。 7.顺序表的打印 void SeqListPrint(SL ps) {//顺序表打印for (int i 0; i ps.size; i){printf(%d , ps.a[i]);} } 8.动态顺序表的扩容 void SeqListCheckCapacity(SL* ps) {//顺序表检查是否需要扩容if (ps-size ps-capacity) {SeqTypeData newcapacity ps-capacity 0 ? 4 : ps-capacity * 2;SeqTypeData* tem (SeqTypeData*)realloc(ps-a, newcapacity * sizeof(SeqTypeData));if (tem NULL) {printf(realloc fail\n);exit(-1);}ps-a tem;ps-capacity newcapacity;} } 9.全部代码 #define _CRT_SECURE_NO_WARNINGS 1 #include SeqList.h#include stdio.h #include stdlib.h #include assert.hvoid SeqListInit(SL* ps){//顺序表初始化ps-a NULL;ps-capacity ps-size 0; };void SeqListDestroy(SL* ps) {//顺序表销毁free(ps-a);ps-a NULL;ps-capacity ps-size 0; };void SeqListPrint(SL ps) {//顺序表打印for (int i 0; i ps.size; i){printf(%d , ps.a[i]);}if (ps.size 0)printf(顺序表为空);printf(\n); }//int SeqListCapacity(SL* ps) {// // return ps-capacity; //}void SeqListPushBack(SL* ps, SeqTypeData x) {//顺序表尾插SeqListCheckCapacity(ps);ps-a[ps-size] x; }void SeqListPushFront(SL* ps, SeqTypeData x) {//顺序表头插SeqListCheckCapacity(ps);//挪动数据ps-size;for (int i 0; i ps-size; i) {ps-a[ps-size - i] ps-a[ps-size - i - 1];}ps-a[0] x; }void SeqListCheckCapacity(SL* ps) {//顺序表检查是否需要扩容if (ps-size ps-capacity) {SeqTypeData newcapacity ps-capacity 0 ? 4 : ps-capacity * 2;SeqTypeData* tem (SeqTypeData*)realloc(ps-a, newcapacity * sizeof(SeqTypeData));if (tem NULL) {printf(realloc fail\n);exit(-1);}ps-a tem;ps-capacity newcapacity;} }void SeqListPopBack(SL* ps) {//顺序表尾删if (ps-size--);else{printf(顺序表为空不可再删\n);} }void SeqListPopFront(SL* ps) {//顺序表头删if (ps-size 0){printf(顺序表为空不可再删\n);}else{for (int i 0; i ps-size; i) {ps-a[i] ps-a[i1];}ps-size--;} }void SeqListFind(SL ps, SeqTypeData x) {//顺序表查找/*int cnt;*/for (int i 0; i ps.size; i) {if (ps.a[i] x) {printf(%d, i 1);//返回逻辑下标/*cnt;*/}}/*if (cnt 0)printf(没有这个数字);*/ }void SeqListInsert(SL* ps, int adr, SeqTypeData x)//adr为逻辑地址等于数组下标加一 {if (adr (ps-size 1) || adr 1){printf(adr invalid\n);return;}SeqListCheckCapacity(ps);int end ps-size ;while (end adr-1){ps-a[end 1] ps-a[end];--end;}ps-a[adr-1] x;ps-size; }void SeqListErase(SL* ps, int adr) {//adr为逻辑地址等于数组下标加一if (ps-size 0){printf(顺序表为空不可再删\n);}if (adr (ps-size 1)){printf(删除位置错误\n);}for (int i adr; i ps-size; i) {ps-a[i-1] ps-a[i];}ps-size--; }void SeqListCheck(SL* ps, int adr, SeqTypeData x) {if(adr(ps-size1))printf(修改位置错误\n);elseps-a[adr - 1] x; }void menu() {printf(请选择\n);printf(********1.头插 2.尾插********\n);printf(********3.头删 4.尾删********\n);printf(********5.随插 6.随删********\n);printf(********7.查找 8.打印********\n);printf(********9.修改 0.退出********\n);printf(请选择\n); }int main() {int input;SL ps;SeqTypeData x;int adr;SeqListInit(ps);do {menu();scanf(%d, input);switch (input){case 1:printf(请输入头插数字\n);scanf(%d, x);SeqListPushFront(ps, x);break;case 2:printf(请输入尾插数字\n);scanf(%d, x);SeqListPushBack(ps, x);break;case 3:SeqListPopFront(ps);break;case 4:SeqListPopBack(ps);break;case 5:printf(请输入插入位置和数字\n);scanf(%d%d, adr, x);SeqListInsert(ps, adr, x);break;case 6:printf(请输入删除位置\n);scanf(%d, adr);SeqListErase(ps, adr);break;case 7:printf(请输入查找数字\n);scanf(%d, x);SeqListFind(ps, x);break;case 8:SeqListPrint(ps);break;case 9:printf(请输入修改位置和数字\n);scanf(%d%d, adr, x);SeqListCheck(ps, adr, x);break;case 0:printf(正在退出中);break;}} while (input);return 0; }10.效果展示 由于图片大小问题只展示了部分功能。
http://www.pierceye.com/news/128674/

相关文章:

  • 佛山市品牌网站建设多少钱印度网站开发成本
  • 群晖 nas 做网站软件开发视频网站
  • 建设银行云南分行招聘网站wordpress 教程
  • 杭州知名的网站制作策略创建一个购物网站需要什么
  • 新乡网站seo优化vs做的网站怎么让局域网的看到
  • 做静态网站怎样让图片自己切换重庆互联网公司排名
  • 微网站需要什么郑州哪家专业做淘宝网站
  • 郑州机械网站制作seo专业优化公司
  • 专注苏州网站优化长沙有哪些知名网站
  • 成品网站货源1688免费推荐建设银行科技中心网站
  • 城乡建设部统计信息网站大学生创新创业大赛项目计划书
  • 河南省水利建设厅网站清溪镇网站仿做
  • 深圳建设企业网站wordpress安装对搜索引擎
  • 做药物分析网站做网站花钱吗
  • 字体图标制作网站恒一信息深圳网站建设公司1
  • 制作一个自己的网站小白node怎么做网站
  • 手机搭建网站工具教育机构加盟
  • 建设网站的服务端口教育培训类网站建设
  • 济南网站建设 泉诺如何防范钓鱼网站
  • 沈阳网站推广公司西安网站设计师
  • 网站建设费用计入什么二级科目企业门户网站建设的必要性
  • 宁夏水利厅建设管理处网站大连网站制作431
  • 泰安最好网站建设公司威海房地产网站建设
  • 公司网站建设网站说出网站建设流程
  • wordpress门户网站模板下载大专计算机专业主要学什么
  • 专业的微商城网站建设农产品网站建设计划书
  • 软件网站开发公司广告公司创意取名
  • 工业设计东莞网站建设个人网站备案网站名称
  • 网站只能用ip访问网站吗导航网站 win8风格
  • 用ps可以做网站吗制作一个网站流程