网上书城网站开发的数据字典道滘东莞微信网站建设
- 作者: 五速梦信息网
- 时间: 2026年04月20日 08:16
当前位置: 首页 > news >正文
网上书城网站开发的数据字典,道滘东莞微信网站建设,wordpress dooplay,财务软件哪个好用函数运算算法合集02 顺序表的结构体顺序表的基本运算的实现1. 建立顺序表2. 顺序表的基本运算2.1 初始化线性表2. 2 销毁顺序表2.3 判断顺序表是否为空表2.4 求顺序表的长度2.5 输出顺序表2.6 按序号求顺序表中的元素2.7 按元素值查找2.8 插入数据元素2.9 删除数据元素 单链表的… 函数运算算法合集02 顺序表的结构体顺序表的基本运算的实现1. 建立顺序表2. 顺序表的基本运算2.1 初始化线性表2. 2 销毁顺序表2.3 判断顺序表是否为空表2.4 求顺序表的长度2.5 输出顺序表2.6 按序号求顺序表中的元素2.7 按元素值查找2.8 插入数据元素2.9 删除数据元素 单链表的结构体单链表的基本运算的实现1.建立单链表1.1头插法1.2尾插法 2.单链表的基本运算2.1 初始化单链表2.2 销毁单链表2.3 判断单链表是否为空表2.4 求单链表的长度2.5 输出单链表2.6 按序号求单链表的元素2.7 按元素值查找2.8 插入数据元素2.9 删除元素数据 双链表的结构体双链表的基本运算的实现1.建立双链表1.1头插法1.2尾插法 2.双链表的基本运算2.1 插入数据元素2.2 删除数据元素 注 本篇文章的概念合集 数据结构的概念大合集02线性表 顺序表的结构体 typedef struct {ElemType data[MaxSize];int length; } SqList;顺序表的基本运算的实现
- 建立顺序表 //建立顺序表 void CreatList(SqList *L,ElemType a[],int n) {int i 0,k 0;L (SqList *)malloc(sizeof(SqList));while(in){L-data[k] a[i];k ;i;}L-length k; }2. 顺序表的基本运算 2.1 初始化线性表 //初始化线性表 void InitList(SqList *L) {L (SqList *)malloc(sizeof(SqList));L -length 0; }2. 2 销毁顺序表 //销毁顺序表 void DestroyList(SqList *L) {free(L); }2.3 判断顺序表是否为空表 //判断顺序表是否为空表 bool ListEmpty(SqList *L) {return(L-length 0); }2.4 求顺序表的长度 //求顺序表的长度 int ListLength(SqList *L) {return(L-length); }2.5 输出顺序表 //输出顺序表 void DisList(SqList *L) {int i;for(i 0; i L-length; i){printf(%d,L-data[i]);printf(\n);} }2.6 按序号求顺序表中的元素 //按序号求顺序表中的元素采用bool性即可以满足函数所需功能还能增加复用性 bool GetElem(SqList * L,int i,ElemType *e) {if(i 1 || i L-length) return false;e L-data[i-1];return true; }2.7 按元素值查找 //按元素值查找 int LocateElem(SqList *L,ElemType e) {int i;while(i L-length L-data[i] e){i;}if(i L-length){return 0;}else{return i1;} }2.8 插入数据元素 //插入数据元素在i位置插入元素e把i后面的元素后移一个位置 bool ListInsert(SqList * L,int i,ElemType e) {int j;if(i 1 || i L-length1 || L-length MaxSize)return false;i–;for(j L-length; j i; j–) //此循环就是为了做到时i后面的元素后移一个位置{L-data[j] L-data[j-1];};L-data[i] e;L-length;return true; }2.9 删除数据元素 //删除数据元素 bool ListDelet(SqList *L,int i,ElemType *e){int j;if(i1 || i L-length)return false;e L-data[i];for(j L-length; j i; j–){L-data[j-1] L-data[j];}L-length–;return true; }单链表的结构体 typedef struct LNode{ElemType data;struct Lnode *next; }LinkNode;单链表的基本运算的实现 1.建立单链表 1.1头插法 //建立单链表——头插法 void CreatListF (LinkNode *L,ElemType a[],int n){LinkNode s;L (LinkNode)malloc(sizeof(LinkNode));L-next NULL;for(int i 0; i n; i){s (LinkNode*)malloc(sizeof(LinkNode));s-data a[i];s-next L-next; //将s的后继结点始终置空这是为了让尾结点的指针置空L-next s; //将头结点的指针始终指向新插入进来的元素} }使用头插法后数组a里面的元素会倒置比如a[5] {1,2,3,4,5},头插法后链表里面的元素是 5,4,3,2,1 具体原因可以多体会一下上述代码中的for循环部分。 1.2尾插法 //建立单链表——尾插法 void CreatListR(LinkNode *L,ElemType a[],int n){LinkNode *s,r;L (LinkNode)malloc(sizeof(LinkNode));r L;for(int i 0;i n;i){s (LinkNode)malloc(sizeof(LinkNode));s-data a[i];r-next s; //将r的后继结点指向srs; //将s赋给r相当于将r后移这样结合上行代码就可以是元素依次插入到头结点后面且顺序不会倒置}r - next NULL; //经过循环后r变成尾结点此行代码就是为了让尾指针为空 }与头插法不同尾插法后得到的元素不会倒置这都是 LinkNode r 的功能 2.单链表的基本运算 2.1 初始化单链表 void InitList(LinkNode L) {L (LinkNode)malloc(sizeof(LinkNode));L-next NULL; }2.2 销毁单链表 //销毁单链表 void DestroyList(LinkNode *L) {LinkNode *pre L, *p L-next;while(p!NULL){free(pre);pre p;p pre-next;}free(pre); }2.3 判断单链表是否为空表 //判断单链表是否为空 bool ListEmpty(LinkNode *L) {return(L-next NULL); }2.4 求单链表的长度 //求链表的长度 int ListLenth(LinkNode *L) {int n 0;LinkNode *p;while(p ! NULL){n;p p-next;}return n; }2.5 输出单链表 //输出单链表 void DispList(LinkNode *L) {LinkNode * p L-next;while (p ! NULL){printf(%d,p-data);pp-next;}printf(\n); }2.6 按序号求单链表的元素 //按序号求单链表中的元素 bool GetElem(LinkNode * L,int i,ElemType *e) {int j 0;LinkNode *p L;if(i 0) return false;while(j i p ! NULL){j;p p-next;}if(p NULL){return false;}else{e p-data;return true;} }2.7 按元素值查找 //按元素值查找 int LocateElem(LinkNode *L,ElemType e){int i 1;LinkNode *p L-next;while(p ! NULL p-data ! e){p p-next;i;}if(p NULL)return 0;elsereturn i; }2.8 插入数据元素 //插入数据元素 bool ListInsert(LinkNode *L,int i,ElemType e){int j 0;LinkNode *p L,s;if(i 0) return false;while(j i-1 p ! NULL){j;p p-next;}if(p NULL){return false;}else{s (LinkNode)malloc(sizeof(LinkNode));s-data e;s-next p-next;p-next s;return true;} }2.9 删除元素数据 //删除数据元素 bool listDelete(LinkNode *L,int i,ElemType *e){int j 0;LinkNode *p L,*q;if(i 0) return false;while(j i-1 p! NULL){j;pp-next;}if(p NULL){return false;} else {q p-next;if(q NULL)return false;e q-next;p-next q-next;free(q);return true;} }双链表的结构体 双链表的基本运算的实现 1.建立双链表 1.1头插法 //建立双链表——头插法 void CreatListF(DLinkNode *L, ElemType a[],int n) {DLinkNode s;L (DLinkNode)malloc(sizeof(DLinkNode));L-next L-prior NULL;for(int i 0; i n; i){s (DLinkNode*)malloc(sizeof(DLinkNode)); //在循环里面开辟内存方便a[i]插入s-data a[i]; s-next L-next; if(L-next ! NULL) //若 L 非空则修改 L-next 的前驱指针{L-next-prior s;}L-next s;s-prior L;} }1.2尾插法 //建立双链表——尾插法 void CreatListR(DLinkNode *L, ElemType a[],int n) {DLinkNode *s,r;L (DLinkNode)malloc(sizeof(DLinkNode));r L:for(int i 0; i n; i){s (DLinkNode*)malloc(sizeof(DLinkNode));s-data a[i];r-next s;s-prior r;r s;}r-next NULL; } 2.双链表的基本运算 对于双链表的一些基本运算而言比如求长度取元素值查找元素等与单链表相同这里就不再展开了但双链表的插入与删除结点就不同于单链表了这里做详细说明 2.1 插入数据元素 //插入数据元素 bool ListInster(DLinkNode *L,int i, ElemType e) {int j 0;DLinkNode *p L,s;if (i 0) return false;while(j i - 1 p ! NULL){j;p p-next;}if( p NULL) return false;else{s (DLinkNode)malloc(sizeof(DLinkNode));s-data e;s-next p-next;if(p-next ! NULL){p-next-prior s;}s-prior p;p-next s;return true;} }2.2 删除数据元素 //删除数据元素 bool ListDelet(DLinkNode *L,ElemType *e) {int j 0;DLinkNode *p L,*q;if(i 0) return false;while(j i-1 p ! NULL){j;p p-next;}if(p NULL) return false;else{q p-next;if(q NULL) return false;e q-data;p-next q -next;if(q-next ! NULL)q-next-prior p;free(q);} }
- 上一篇: 网上商城网站建设方案书门户网站什么意思举例子
- 下一篇: 网上书店网站开发代码芜湖做网站的邓健照片
相关文章
-
网上商城网站建设方案书门户网站什么意思举例子
网上商城网站建设方案书门户网站什么意思举例子
- 技术栈
- 2026年04月20日
-
网上商城建设 网站定制开发logo设计竞标网站
网上商城建设 网站定制开发logo设计竞标网站
- 技术栈
- 2026年04月20日
-
网上企业管理系统免费版佛山百度网站快速优化
网上企业管理系统免费版佛山百度网站快速优化
- 技术栈
- 2026年04月20日
-
网上书店网站开发代码芜湖做网站的邓健照片
网上书店网站开发代码芜湖做网站的邓健照片
- 技术栈
- 2026年04月20日
-
网上图书商城网站设计制作一个公司网站多少
网上图书商城网站设计制作一个公司网站多少
- 技术栈
- 2026年04月20日
-
网上销售都有哪些平台wordpress优化版模板
网上销售都有哪些平台wordpress优化版模板
- 技术栈
- 2026年04月20日
