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

网站建设教程流程好网站开发公司

网站建设教程流程,好网站开发公司,免费观看行情软件,经典logo设计声明#xff1a;所有代码都可以运行#xff0c;可以直接粘贴运行#xff08;只有库函数没有声明#xff09; 线性表的定义和基本操作 基本操作 定义 静态#xff1a; #includestdio.h #includestdlib.h#define MaxSize 10//静态 typedef struct{int d… 声明所有代码都可以运行可以直接粘贴运行只有库函数没有声明 线性表的定义和基本操作 基本操作 定义 静态 #includestdio.h #includestdlib.h#define MaxSize 10//静态 typedef struct{int data[MaxSize];int length; }SqList;void InitList(SqList L)//初始化 {for(int i0;iMaxSize;i){L.data[i]0;}L.length0; }int main(void) {SqList L;InitList(L);for(int i0;iL.length;i){printf(the data %d is %d,i,L.data[i]);}return 0; }动态 #includestdio.h #includestdlib.h#define InitSize 10typedef struct{int *data;int MaxSize;//最大容量 int length;//当前长度 }SeqList;void Init(SeqList L) {L.data(int *)malloc(InitSize*sizeof(int));L.length0;L.MaxSizeInitSize; }int main(void){return 0; }插入 静态 //插入操作,bool用于判断操作是否成功 (处理异常情况) bool ListInsert(SqList L,int i,int e){if(i1 || iL.length1) return false;//条件判断 if(L.length MaxSize) return false;for(int jL.length;ji;i--){L.data[j]L.data[j-1];}L.data[i-1]e;L.length; }动态 删除 静态 bool ListDelete(SqList L,int i,int e){if(i1||iL.length) return false;eL.data[i-1];for(int ji;jL.length;j){L.data[j-1]L.data[j];}L.length--;return true; }动态顺序表以及各个操作 #includestdio.h #includestdlib.h #define InitSize 10typedef struct{int *data;int MaxSize;int length; }SqList;void debug(SqList L){printf(当前顺序表的数据为length%d maxsize%d\n,L.length,L.MaxSize); } //初始化 void InitList(SqList L){L.data(int *)malloc(InitSize*sizeof(int));L.length0;L.MaxSizeInitSize; }//增加动态数组的长度 void IncreaseSize(SqList L,int len){int *pL.data;L.data(int *)malloc((L.MaxSizelen)*sizeof(int));for(int i0;iL.length;i){L.data[i]p[i];//将数据复制到新区域 }L.MaxSizeL.MaxSizelen;//顺序表最大长度增加len free(p);//释放空间 } //插入操作 bool ListInsert(SqList L,int i,int e){//范围判断 if(i1 || iL.length1)return false;if(L.lengthL.MaxSize)return false;for(int jL.length;ji;j--){L.data[j]L.data[j-1];}L.data[i-1]e;L.length;return true; } 删除操作,删除第i个数据并且返回被删除的数据 bool ListDelete(SqList L,int i,int e) {//范围判断if(i1 || iL.length1) return false;else{//保存删除元素eL.data[i]; for(int ji;jL.length;j){L.data[j]L.data[j1];}L.length--;} return true;} //按位查找 int getElemBybit(SqList L,int i){//Check if the line has been crossedif(i1 || iL.length){printf(Cross the border!);return 0;}return L.data[i-1]; } //按值查找 int getElemByValue(SqList L,int value){for(int i0;iL.length;i){if(L.data[i] value){return i-1;}}printf(Cant find the elem!);return 0; } //打印操作 void print(SqList L){for(int i0;iL.length;i){printf(%d ,L.data[i]);}printf(\n); } //测试函数 int main(void){SqList L;debug(L);InitList(L);debug(L);for(int i0;iL.MaxSize;i){L.data[i]i;L.length;}IncreaseSize(L,5);debug(L);print(L);if(ListInsert(L,2,5)){printf(插入成功,插入后数值);print(L);}else printf(插入失败);int e0;if(ListDelete(L,3,e)){print(L);printf(被删除元素为%d,e);}int value,position;printf(\nPlease input the value and the position:); scanf(%d %d, value, position); printf(\nget the emlem by value :the elem position is%d\n,getElemByValue(L,value));printf(\nget the emlem by positon:the value is%d\n,getElemBybit(L,position));return 0; }单链表基本操作 操作 // 初始化一个链表带头结点 bool InitList(LinkList* L);// 按照位序插入 bool ListInsert(LinkList* L, int i, int e);// 指定结点的后插操作 bool InsertNextNode(LNode* p, int e);// 指定结点的前插操作 bool InsertPriorNode(LNode* p, int e);// 按位序删除结点 bool ListDelete(LinkList* L, int i, int* e);// 创建方式 - 头插法创建 LinkList List_HeadInsert(LinkList* L);//创建方法 - 尾插法创建 LinkList List_TailInsert(LinkList* L);//指定结点的删除 bool DeleteNode(LNode *p);//按位查找 LNode *GetElem(LinkList L,int i);//按值查找 LNode *LocateElem(LinkeList L,int e); //求单链表的长度 int length(LinkList L);//链表逆置 LNode *Inverse(LNode *L); // 打印链表 void print(LinkList L); 操作实现 // 打印链表 void print(LinkList L) {LinkList E L-next;while (E ! NULL) {printf(%d , E-data);E E-next;}printf(\n); }// 初始化一个链表带头结点 bool InitList(LinkList* L) {*L (LNode*)malloc(sizeof(LNode));if (*L NULL) return false;(*L)-next NULL;printf(Initialization of the linked list succeeded!\n);return true; }// 按照位序插入 bool ListInsert(LinkList* L, int i, int e) {if (i 1) return false; // 判断操作合法LNode* p *L;int j 0;while (p ! NULL j i - 1) {p p-next;j;}int choice 0;printf(Prior or next?(1/2));scanf(%d,choice);if(choice 2)return InsertNextNode(p, e);if(choice 1)return InsertPriorNode(p,e);elsereturn false; }// 指定结点的后插操作 bool InsertNextNode(LNode* p, int e) {if (p NULL) return false; // 判断合法 LNode* s (LNode*)malloc(sizeof(LNode));if (s NULL) return false; // 内存分配失败 s-data e;s-next p-next;p-next s;return true; }// 指定结点的前插操作 bool InsertPriorNode(LNode* p, int e) {if (p NULL) return false;LNode* s (LNode*)malloc(sizeof(LNode));if (s NULL) return false;s-next p-next;p-next s;s-data p-data; // 交换数值从而实现前插操作方法还是后插的方法 p-data e;return true; }// 按位序删除结点并返回删除数据 bool ListDelete(LinkList* L, int i, int* e) {if (i 1) return false; // 判断操作合法LNode* p *L;int j 0;while (p ! NULL j i - 1) {p p-next;j;} // 定位到删除结点if (p NULL) return false;if (p-next NULL) return false;LNode* q p-next;*e q-data;p-next q-next;free(q);return true; }// 创建方式 // 1. 头插法创建 O(n) LinkList List_HeadInsert(LinkList* L) {*L (LinkList)malloc(sizeof(LNode)); // 建立头结点(*L)-next NULL; // 初始为空链表这步不能少int x;LNode* s;printf(input the x:);scanf(%d, x);while (x ! 9999) {s (LNode*)malloc(sizeof(LNode));s-data x;s-next (*L)-next;(*L)-next s;printf(Continue input the x:);scanf(%d, x);}return *L; }//指定结点的删除重点理解 bool DeleteNode(LNode *p){if(p NULL) return false;LNode *qp-next;p-datap-next-data;p-nextq-next;free(q);return true; }//按位查找 LNode *GetElem(LinkList L,int i){if(i1) return false;LNode *pL-next;int j;while(p!NULL ji-1){pp-next;j;}return p; }//按值查找 LNode *LocateElem(LinkList L,int e){if(L NULL) return false;LNode *pL-next;while(p ! NULL p-data!e){pp-next; }return p; }//求单链表的长度 int length(LinkList L){int len0;LNode *pL;while(p-next!NULL){pp-next;len;}return len; } //创建方法 - 尾插法创建 //创建方法 - 尾插法创建 LinkList List_TailInsert(LinkList* L){int x;*L(LinkList)malloc(sizeof(LNode));LNode *s,*r*L;printf(输入插入的结点的值);scanf(%d,x);while(x ! 9999){s(LNode *)malloc(sizeof(LNode));s-datax;r-nexts;rs;scanf(%d,x);}r-nextNULL;return *L; }//链表逆置(重点理解) LNode *Inverse(LNode *L){LNode *p,*q;pL-next;L-nextNULL;while(p!NULL){qp;pp-next;q-nextL-next;L-nextq;}return L; }测试代码 int main(void) {LinkList L NULL;LNode *elem NULL;int e0;List_HeadInsert(L);print(L);printf(Insert\n);ListInsert(L,2,3); print(L);ListDelete(L,3,e);print(L);printf(Deleted elem:%d\n,e);printf(Delete the elem by Node\n);DeleteNode(L-next-next);print(L);printf(Search by position\n);elemGetElem(L,3);printf(the elem is:%d\n,elem-data);printf(Inverse the Link\n);LInverse(L);print(L);return 0; }
http://www.dnsts.com.cn/news/67013.html

相关文章:

  • 门户网站建设意见vi形象设计企业vi设计公司
  • 那个网站做排列五头比较准河南建筑公司网站
  • 网站推广活动策划沈阳定制网站建设
  • 泊头西环网站建设哈尔滨网络公司代理商
  • 安装网站模板站点创建成功有影响吗
  • 网站主域名是什么东莞建设网站综合服务平台
  • 宁波网站制作 收费标准阿里巴巴官网登录
  • 前端一般模仿什么网站如何将公司网站做的更好看
  • 容桂品牌网站建设优惠网站的建设需要数据库
  • 网站建设购物车google建网站
  • 广州做网站信科分公司模板网站音响案例
  • 需要做网站的公司ppt设计怎么赚钱
  • 怎么做垂直网站做电影网站怎么降低内存
  • 虚拟展馆官方网站建设优化设计五年级下册语文答案2021
  • 南京老牌网站建设公司js链接wordpress
  • 建设电商网站所需硬件品牌建设实施细则
  • 产品设计排版网站dede网站名称不能保存
  • 苏州 建设中心网站一站式做网站哪家专业
  • 青岛网站制作辰星辰互联网行业怎么样
  • 东四网站建设wordpress菜单新窗口打开
  • 0基础网站建设教程视频网站建设费用摊销多少年
  • 艾瑞网站建设阿里巴巴网站建设与维护
  • 摄影网站首页设计wordpress注册用户延迟
  • 高端建站方案北京个人网站公司
  • 定制网站建设公司电话电商怎么推广自己的产品
  • 奉化区城乡建设局网站中国建筑查询网
  • 资源网站搭建WORDPRESS添加全屏幻灯片
  • 网站建设以后主要做什么网络技术学习网站
  • 贵州住房和城乡建设部网站首页杭州江干网站建设
  • clh网站建设公司广州网站定制开发方案