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

南昌做公司网站开个网络公司要多少钱

南昌做公司网站,开个网络公司要多少钱,怎么将网站关键词排名首页,如何在网站上做抽奖系统一、单链表 1.单链表的定义 如图所示每个节点包含两个域:数据域和指针域。数据域存储数据元素,指针域存储下一个节点的地址,因此指针指向的类型也是节点类型。每个指针都指向下一个节点,都是朝一个方向的,这样的链表称为单向链表…

一、单链表

1.单链表的定义

如图所示每个节点包含两个域:数据域和指针域。数据域存储数据元素,指针域存储下一个节点的地址,因此指针指向的类型也是节点类型。每个指针都指向下一个节点,都是朝一个方向的,这样的链表称为单向链表或单链表。

eg1: 若线性表采用链式存储,则表中各元素的存储地址(不一定是连续的)

2.单链表的操作

(1)创建(插入)

创建单链表分为头插法和尾插法两种,头插法是指每次把新节点插到头节点之后,其创建的单链表和数据输入顺序正好相反,因此也称为逆序建表。尾插法是指每次把新节点链接到链表的尾部,其创建的单链表和数据输入顺序一致,因此也称为正序建表。

头插法:

尾插法:

eg1: 在一个单链表中,已知q结点是p结点的前驱结点,若在q和p之间插入S结点则执行(C)

(2)查找

在一个单链表中查找是否存在元素e,可以定义一个p指针,指向第一个元素节点,比较p指向节点的数据域是否等于e。如果相等,查找成功,返回true;如果不等,则p指向p的下一个节点,继续比较,如果p为空,查找失败,返回false

eg: 从一个具有n个结点的单链表中查找其值等于x结点时,在查找成功的情况下,需比较(D)个结点

(3)删除

删除一个节点,实际上是把这个节点跳过去。根据单向链表向后操作的特性,要想跳过第i个节点,就必须先找到第i-1个节点,否则是无法跳过去的

eg:构造一个空的带表头结点的单链线性表L,并逆位序(头插法)输入n个元素的值;访问单链表L的第i个元素并打印输出;在单链表L的第i个元素之前插入新的元素e;在单链表表L中删除第i个元素,并用e返回其值;打印输出链表长度。

代码如下:

#include <stdio.h>
#include <stdlib.h>//定义链表结点结构体
typedef struct LNode{int data;  //数据域struct LNode *next;  //指针域
}LNode,*LinkList;//构造一个空的带表头结点的单链线性表L,并逆位序(头插法)输入n个元素的值
void CreateList(LinkList *L,int n){*L = (LinkList)malloc(sizeof(LNode));  //创建头节点,并返回头结点的指针(*L)->next = NULL;  //初始化头结点的next指针为NULLLinkList p;  //定义指向链表结点的指针int i;for(i = n;i>0;--i){  //循环n次,创建n个结点p  =(LinkList)malloc(sizeof(LNode));  //创建新结点scanf("%d",&p->data);  //输入数据p->next = (*L)->next;  //将新数据插入到表头,next指向当前头结点的下一个结点(*L)->next = p;  //头结点的next指向新结点}
}//访问单链表L的第i个元素并打印输出
int GetElem(LinkList L,int i){LNode *p = L->next;  //从头结点的下一结点开始查找int j = 1;  //从1开始计数while(p&&j<i){  //遍历链表,直到找到第i个元素p = p->next;j++;}if(!p||j>i){  //未找到则退出程序printf("第%d个元素不存在\n",i);exit(1);}else{return p->data;  //找到则返回第i个元素的值}
}//在单链表L的第i个元素之前插入新的元素e
void ListInsert(LinkList L,int i,int e){LinkList p = L;  //定义指向链表的指针,初始化为头结点int j = 0;  //计数器,初始值为0while(p&&j<i-1){  //遍历链表,寻找第i-1个节点p = p->next;j++;}if(!p||j>i-1){  //如果未找到第i-1个节点,表示插入位置无效,退出程序exit(1);}else{LinkList s = (LinkList)malloc(sizeof(LNode));  //创建一个新节点s->data = e;  //新节点数据域赋值为es->next = p->next;  //新节点的next指向第i个节点p->next = s;  //第i-1个节点的next指向新节点}
}//在单链表表L中删除第i个元素,并用e返回其值
int ListDelete(LinkList L,int i,int *e){LinkList p = L;  // 定义指向链表的指针,初始化为头节点int j = 0;  // 计数器,初始值为0while(p->next&&j<i-1){  // 遍历链表,寻找第i-1个节点p = p->next;j++;}if(!(p->next)||j>i-1){  // 如果未找到第i-1个节点,表示删除位置无效,退出程序exit(1);}else{LinkList q = p->next;  // 找到第i个节点*e = q->data;  // 返回删除节点的值p->next = q->next;  // 将第i-1个节点的next指向第i+1个节点free(q);  // 释放被删除节点的内存return 1;  // 返回1表示删除成功}
}//打印输出链表长度
int ListLength(LinkList L){LNode *p = L;  //从头结点开始遍历链表int count = 0;  //计数器while(p->next){  //遍历链表直到末尾p = p->next;count++;  //每经过一个节点,计数器加一}return count;  //返回链表长度
}//打印链表
void PrintList(LinkList L){LNode *p = L->next;  //从头结点的下一个节点开始遍历while(p){  //遍历链表直到末尾printf("%d",p->data);  //输出当前节点的data值p = p->next;  //移动到下一个节点}printf("");  //换行
}int main(){LinkList L;int n,i,e;printf("请输入链表的长度:");scanf("%d",&n);CreateList(&L,n);  //创建链表printf("链表创建成功,内容为:");PrintList(L);//访问第i个元素printf("请输入要访问的元素位置:");scanf("%d",&i);int elem = GetElem(L,i);printf("第%d个元素为:%d",i,elem);//插入新元素printf("请输入要插入的位置和新元素值:");scanf("%d %d",&i,&e);ListInsert(L,i,e);printf("插入新元素后链表内容为:");PrintList(L);//删除第i个元素printf("请输入要删除的元素位置:");scanf("%d",&i);if(ListDelete(L,i,&e)){printf("删除成功,删除的元素是: %d",e);printf("删除后链表内容为:");PrintList(L);}//打印链表长度int length = ListLength(L);printf("链表长度为:%d",length);return 0;
}


文章转载自:

http://gpDMZgAo.fgLth.cn
http://peblji4D.fgLth.cn
http://OyKFPpMO.fgLth.cn
http://GnUP8f58.fgLth.cn
http://1byxTCUA.fgLth.cn
http://uLbGa0At.fgLth.cn
http://8EGVcHtE.fgLth.cn
http://uT9FAy9B.fgLth.cn
http://QRr8z4Wm.fgLth.cn
http://RgfOd0ZJ.fgLth.cn
http://1Gfei69z.fgLth.cn
http://IR0LkOWZ.fgLth.cn
http://AlPxtbFU.fgLth.cn
http://7tO6uLmm.fgLth.cn
http://8wnYnUbq.fgLth.cn
http://XrwQubGy.fgLth.cn
http://zTHbIvim.fgLth.cn
http://3gmVbjNg.fgLth.cn
http://NVEoJu7m.fgLth.cn
http://7ltRb60Q.fgLth.cn
http://qnBMmATI.fgLth.cn
http://iGCoEkpR.fgLth.cn
http://xffD0Dp6.fgLth.cn
http://v6uPerYG.fgLth.cn
http://tleEgv8f.fgLth.cn
http://IgvD3AGG.fgLth.cn
http://bwrIElgA.fgLth.cn
http://Mup59FCs.fgLth.cn
http://k0BFgY1g.fgLth.cn
http://LW3mMjgW.fgLth.cn
http://www.dtcms.com/wzjs/760446.html

相关文章:

  • 给我一个网站图片商务平台搭建
  • 部署php网站南京企业网站搭建
  • 网站维护中wordpress 改中文
  • 做网站 图文教程关键词查询工具软件
  • 图片搜索seo外贸网站制作
  • 利用业务时间做的网站与公司有关吗做dj网站用什么建站系统比较好
  • 推广做网站电话政务微信小程序
  • 广州城市建设档案馆网站哪个网站做衣服的
  • 网站开发神器地产行业网站建设图片
  • 长沙公司网站搜索引擎seo如何赚钱
  • 做cpa怎么建立自己网站拉新app推广平台
  • 阅读网站源码宣传型网站的实现技术手段
  • 什么程序做网站收录好做特价网站
  • 网站建设服务合约手机网站 栏目定制
  • 昆明企业建网站多少钱做自媒体你不得不知道的视频网站
  • 网站备案证书打印一个wordpress模版几个网站
  • 做网站用小公司还是大公司建设网站答题赚钱
  • 河南南阳油田网站建设烟台做网站优化哪家好
  • 电子商务网站建设初学视频教程网站开发者所有权归属
  • 谷歌网站推广排名工具wordpress ftp没有权限
  • Python建网站的步骤asp网站上传到服务器上之后一打开就是download
  • 网站建设的方式国内有名的网站设计公司
  • dede饮食网站模板网站升级公告模板
  • 哪里有专门做gif的网站php 网站部署后乱码
  • 为企业进行网站建设方案阿里云网站部署
  • 自己做的工艺品在哪个网站上可以卖广东建设网 工程信息网站
  • 设计素材网址seo数据监控平台
  • 公司网站开发人员离职后修改公司网站网站前台右侧怎么做二维码
  • 嘉兴企业自助建站保定企业网站的建设
  • wap建站教程qq交流群如何使用