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

网站图标怎么换展厅装修设计公司有

网站图标怎么换,展厅装修设计公司有,淘宝推广平台有哪些,邯郸网站改版费用线性表-链式存储-单链表 代码实现 代码实现 #include<stdio.h> #include<stdlib.h> #include<stdbool.h>//定义元素数据类型 #define ElemType int//定义结点结构体 typedef struct LNode {//数据域&#xff0c;说白了就是存放当前节点的数据的。ElemType d…

线性表-链式存储-单链表

  • 代码实现


代码实现

#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>//定义元素数据类型
#define ElemType int//定义结点结构体
typedef struct LNode {//数据域,说白了就是存放当前节点的数据的。ElemType data;//指针域,就是存放这个节点指向的下一个节点的地址struct LNode *next;
} LNode, *LinkList;   //LinkList就是LNode的代指//函数声明
bool Empty(LinkList L);//初始化链表
void InitList(LinkList *L) {//给链表的开头的结点分配一个LNode结构体大小的内存空间*L = (LinkList) malloc(sizeof(LNode));//将后继结点设置为NULL,也就是现在只有这一个节点(*L)->next = NULL;
}//头插法建立单链表
LinkList ListInsert_Head(LinkList *L) {InitList(L);ElemType Elem;printf("请输入要插入的元素数据(输入0结束):");scanf("%d", &Elem);while (Elem != 0) {//建立一个新的节点LinkList newNode = (LinkList) malloc(sizeof(LNode));newNode->data = Elem;newNode->next = (*L)->next;(*L)->next = newNode;scanf("%d", &Elem);}return *L;
}//尾插法建立单链表
LinkList ListInsert_Tail(LinkList *L) {InitList(L);ElemType Elem;LNode *p,*r = (*L);printf("请输入要插入的元素(输入0结束):");scanf("%d", &Elem);while (Elem != 0) {p = (LinkList) malloc(sizeof(LNode));p->data = Elem;p->next = NULL;r->next = p;r = p;scanf("%d", &Elem);}return *L;
}//求单链表表长
int Length(LinkList L) {//新建一个移动结点,负责遍历链表,因为有头结点,所以移动结点从头结点的下一个结点算起LNode *p = L->next;//定义int变量,用于统计链表长度int num = 0;while (p != NULL) {num++;p = p->next;}return num;
}//按值查找操作
//int LocateElem(LinkList L, ElemType Elem) {
//    //定义移动指针,指向头结点的下一个位置
//    LNode *p = L->next;
//
//    //定义当前索引,初始值为1,因为头结点为0
//    int index = 1;
//
//    //如果当前节点数据不为要寻找的那个值,就继续循环
//    while (p != NULL && p->data != Elem) {
//        index++;
//        p = p->next;
//    }
//    if (p == NULL) {
//        return -1;
//    }
//    return index;
//}
/*------------------------上面写了个返回位置,其实应该返回结点----------------------------*///按值查找操作(返回结点)
LNode *LocateElem(LinkList L, ElemType Elem) {LNode *p = L->next;while (p != NULL && p->data != Elem) {p = p->next;}return p;
}//按位查找操作(返回结点)
LNode *GetElem(LinkList L, int index) {LNode *p = L->next;if (index > Length(L)) {printf("索引超出链表长度!\n");return NULL;}//为什么要大于1呢,因为0是头结点。while (index > 1) {p = p->next;index--;}return p;
}//插入操作
void ListInsert(LinkList *L, int index, ElemType Elem) {if (index > Length(*L)) {printf("索引超出链表长度!\n");return;}//建立临时移动结点LNode *p = (*L);//建立新节点LinkList new;InitList(&new);new->data = Elem;//先找到index位置的上一个节点while (index > 1) {p = p->next;index--;}//把插入位置的上一个节点的下一个节点赋值给新节点new->next = p->next;p->next = new;
}//删除操作
void ListDelete(LinkList *L, int index) {if (index > Length(*L)) {printf("索引超出链表长度!\n");return;}//其实前面有索引判断了,这个判空好像没用if (Empty(*L)) {printf("删除失败,链表为空!\n");return;}LNode *p = (*L);//找到删除位置的上一个节点while (index > 1) {p = p->next;index--;}p->next = p->next->next;
}//判空函数
bool Empty(LinkList L) {if (L == NULL || L->next == NULL) {return true;}return false;
}//销毁单链表
void DestroyList(LinkList *L) {//定义移动结点LNode *p = (*L);while (p != NULL) {//定义一个地址信息保存pLNode *temp = p;p = p->next;free(temp);}//将头结点设置为空*L = NULL;}//打印链表数据
void PrintList(LinkList L) {if (Empty(L)) {printf("链表为空!\n");return;}//新建一个LNode结点结构体p,并将链头结点的后继设置为这个结点的后继LNode *p = L->next;printf("链表中的元素为:");//当下一个结点不为空的时候,一直打印while (p != NULL) {printf("%d ", p->data);p = p->next;}printf("\n");
}int main() {//定义头结点LinkList head;//定义元素值ElemType Elem;//定义索引int index;//头插法建立链表
//    head = ListInsert_Head(&head);//尾插法建立链表head = ListInsert_Tail(&head);//打印链表PrintList(head);//输出链表长度printf("链表长度为:%d\n", Length(head));//查找指定元素值的对应值(搁这搁这呢)printf("请输入要查找的元素的值:");scanf("%d", &Elem);printf("值为%d的元素的值为%d\n", Elem, LocateElem(head, Elem)->data);//查找指定位置的对应值printf("请输入要查找的元素的位置:");scanf("%d", &index);printf("位置为%d的元素的值为%d\n", index, GetElem(head, index)->data);//插入元素printf("请输入要插入的元素的位置:");scanf("%d", &index);printf("请输入要插入的元素的值:");scanf("%d", &Elem);ListInsert(&head, index, Elem);printf("插入元素后的链表:\n");PrintList(head);//删除元素printf("请输入要删除的元素的位置:");scanf("%d", &index);ListDelete(&head, index);printf("删除元素后的链表:\n");PrintList(head);//销毁链表DestroyList(&head);printf("销毁后的链表:\n");PrintList(head);
}
http://www.yayakq.cn/news/803695/

相关文章:

  • 怎么让网站绑定域名沛县网络营销是什么
  • 在英特尔上建设网站可选择的方案有wordpress分类目录进不去
  • 网站建设与管理难学吗进口跨境电商网站制作
  • 给网站做网站基本配置
  • 浙江省住房城乡建设厅网站检测软件定制
  • wordpress json数据seo工具包
  • wordpress封采集站ip网站图片怎么做才有吸引力
  • 济南如何挑选网站建设公司互联网金融p2p网站建设
  • 中小型企业网站设计与开发wordpress网站乱码
  • 网站开发熬夜么目前网站在初级建设阶段 需要大量数据丰富
  • 自己怎么注册网站怎么做网站免费优化
  • 网站建设的进度安排和人员安排建设网站公司
  • wap版网站 加app提示wordpress首页文字广告框架
  • 盘锦网站建设哪家好网站建设咨询哪家性价比高
  • 广州网站设计皆赞乐云践新网络营销推广的作用
  • 潍坊网站制作多少钱东莞网站建设网络推广
  • 域名会跳转怎么进原网站网站对品牌的作用
  • 自己做的网站能被别人看到吗浙江专业网页设计免费建站
  • 前端响应式网站淮南网站开发
  • 网站建设到一半想换一家手机建设网站目的
  • 甘肃住房建设厅的网站wordpress点赞代码
  • php网站iis设置网站怎么用
  • 网站制作定制苏州建设网站服务
  • 金融网站建设公司wordpress录入信息
  • 关于网站建设的方案ppt俄罗斯乌克兰最新局势最新消息
  • 餐饮团购网站建设知言 wordpress
  • 对重庆电子政务网站建设评价深圳企业网站定做
  • 珠海自助建站软件php建网站
  • cms建站佛山网页设计模板
  • 网站建设开发电销话术狼雨的网站