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

怎样做网站宣传自己的宾馆cnzz

怎样做网站宣传自己的宾馆,cnzz,合肥市庐阳区住房和城乡建设局网站,大连高新园区在哪函数运算算法合集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;

顺序表的基本运算的实现

1. 建立顺序表

//建立顺序表
void CreatList(SqList *L,ElemType a[],int n)
{int i = 0,k = 0;L = (SqList *)malloc(sizeof(SqList));while(i<n){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 i+1;}
}

2.8 插入数据元素

//插入数据元素,在i位置插入元素e<==>把i后面的元素后移一个位置
bool ListInsert(SqList * L,int i,ElemType e)
{int j;if(i < 1 || i > L->length+1 || 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(i<1 || 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的后继结点指向sr=s;    //将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);p=p->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++;p=p->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);}
}
http://www.hotlads.com/news/5953.html

相关文章:

  • 有什么做房屋装修的网站成人短期培训能学什么
  • 学校门户网站建设工作杭州搜索引擎排名
  • 企业网站主页设计图上海优化公司排行榜
  • wordpress 微博主题 twitter主题长沙seo技术培训
  • 网站建设哪家比较好驻马店网站seo
  • 为企业为什么做网站seo技巧seo排名优化
  • 深圳做网站好的公司网络推广有效果吗
  • 热可可怎么做视频网站百度seo关键词工具
  • 北京做网站建设seo营销网站的设计标准
  • 电子商务网站建设asp sql 源码下载2021年搜索引擎排名
  • 温州企业模板建站品牌seo培训
  • 哪些软件可以做网站设计百度推广登录页面
  • 网站开发形成收入怎么做帐搜索推广广告
  • 水利部网站建设与管理司潍坊网站建设解决方案
  • 有没有专门做宝宝用品的网站seo怎么优化方法
  • 个体营业执照可以做网站服务吗亚马逊关键词搜索工具
  • 天元建设集团有限公司济南第六建筑工程公司seo全称是什么意思
  • 西安哪里找做网站公司中央突然宣布一个大消息
  • 做化工类网站内容媒体资源网官网
  • 一个人做网站建设需掌握互联网营销师报名入口
  • 技术外包网站网络营销策略有哪些
  • 长沙的汽车网站建设北京推广
  • 网络搏彩网站做代理my63777免费域名查询
  • 上海市建设工程质监站网站网站源码建站
  • 正版电子书做的最好的网站谷歌搜索入口365
  • 做文学网站编辑的前景网络工程师培训班要多少钱
  • 网站开发毕业论文大纲简述企业网站如何推广
  • 做租车行网站夜狼seo
  • wordpress导出app网站seo关键词排名
  • 有用模板网官网福建seo外包