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

网站优化模板最受欢迎的十大培训课程

网站优化模板,最受欢迎的十大培训课程,宁波谷歌推广,今天最新新闻摘抄文章目录 单链表定义版本一(可自己选择是否含头节点)创建单链表打印单链表对单链表进行冒泡排序删除单链表中值为key的节点求单链表表长在单链表位序为i的位置插入新元素e 单链表定义 typedef struct node {int data;struct node* next; }LinkNode,*LinkList;版本一(可自己选择…

文章目录

  • 单链表定义
  • 版本一(可自己选择是否含头节点)
    • 创建单链表
    • 打印单链表
    • 对单链表进行冒泡排序
    • 删除单链表中值为key的节点
    • 求单链表表长
    • 在单链表位序为i的位置插入新元素e

单链表定义

typedef struct node
{int data;struct node* next;
}LinkNode,*LinkList;

版本一(可自己选择是否含头节点)

创建单链表

/*** @brief 创建单链表* @param head 单链表存储位置* @param data 存储单链表的整数数组* @param size 数组大小* @param is_have_head 是否创建头节点,是为1,否则为0*/
LinkList CreateList(int data[], int size, int is_have_head) {LinkList head = NULL;LinkNode* p = NULL;head = (LinkNode*)malloc(sizeof(LinkNode));  // 创建头结点head->next = NULL;p = head;for (int i = 0; i < size; i++) {LinkNode* newNode = (LinkNode*)malloc(sizeof(LinkNode));newNode->data = data[i];newNode->next = NULL;if (head == NULL) {head = newNode;p = head;}else {p->next = newNode;p = p->next;}}if (!is_have_head && head != NULL) {  // 删除头结点LinkNode* temp = head;head = head->next;free(temp);}return head;
}

打印单链表

/*** @brief 打印单链表* @param head 单链表指针* @param is_have_head 是否含头节点,是为1,否则为0*/
void PrintList(LinkList head, int is_have_head) {LinkNode* p = head;if (is_have_head) p = p->next;if (!p) printf("空链表!\a\n");else {while (p) {printf("%d->", p->data);p = p->next;}printf("NULL\n");}
}

对单链表进行冒泡排序

/*** @brief 对单链表进行冒泡排序* @param L 单链表指针L* @param is_have_head 是否含头节点,是为1,否则为0*/
void LinkBubbleSort(LinkList L, int is_have_head) {LinkNode* head = L;if (is_have_head) head = head->next;LinkNode* p = head, * q = p->next, * last = NULL;if (p == NULL || q == NULL) return;while (head->next != last) {while (q && q != last ) {if (p->data > q->data) {int temp = p->data;p->data = q->data;q->data = temp;}p = q;q = q->next;}last = p;p = head;q = p->next;}
}

删除单链表中值为key的节点

/*** @brief 删除单链表中值为key的节点* @param L 单链表L* @param key 目标值key* @param is_have_head 是否含头节点,是为1,否则为0* @return 删除成功返回true,否则返回false*/
bool ListDeleteNode(LinkList L, int key, int is_have_head) {LinkNode* p = L, * pre = NULL;if (is_have_head) {pre = p;p = p->next;}while (p && p->data != key) {pre = p;p = p->next;}if (!p) return false;pre->next = p->next;free(p);return true;
}

求单链表表长


/*** @brief 求链表长度* @param L 表头指针* @param is_have_head 是否含头结点,是为1,否则为0* @return 返回单链表的长度(不含头结点),空表返回0*/
int GetListSize(LinkList L, int is_have_head) {LinkNode* p = L;if (p == NULL) return 0;if (is_have_head) p = p->next;int count = 0;while (p) {count++;p = p->next;}return count;
}

在单链表位序为i的位置插入新元素e

/*** @brief 在单链表位序为i的位置插入新元素e* @param L 表头指针* @param i 插入位置(1<=i<=GetListSize(L)+1)* @param e 待插入元素e* @param is_have_head 是否含头结点,是为1,否则为0* @return 插入成功返回1,否则返回0*/
int ListInsert(LinkList L, int i, int e, int is_have_head) {int list_size = GetListSize(L, is_have_head);if (i < 1 || i > list_size + 1) return 0;  // 位序非法LinkNode* p = L, * pre = NULL;int cur = 1;if (is_have_head) {pre = p;p = p->next;}while (cur < i) {pre = p;p = p->next;cur++;}LinkNode* new_node = (LinkNode*)malloc(sizeof(LinkNode));new_node->data = e;if (pre == NULL) { // 第一个位置插入new_node->next = L;L = new_node;}else {new_node->next = p;pre->next = new_node;}return 1;
}
http://www.dt0577.cn/news/7560.html

相关文章:

  • 数据网站建设哪家好公关公司排名
  • 武汉做网站网络公司网址大全是ie浏览器吗
  • 大学生学风建设专题网站免费发广告的平台有哪些
  • 做网站建设公司企业网络营销专业毕业论文
  • 全网站开发是什么企业百度推广
  • 烟台网站建设联系电话广告平台网
  • 网站怎么设计制作网站seo推广招聘
  • 政府网站源码下载网络营销策略主要包括
  • 个人能免费做网站seo排名影响因素主要有
  • 做网站绘制蓝图的步骤nba排名赛程
  • 手机网站开发搜索引擎优化的核心本质
  • 网站建设功能清单美国婚恋网站排名
  • 还是网站好德阳seo优化
  • 合肥web网站建设报价重庆seo整站优化效果
  • vps 同时做ssh和做网站驾校推广网络营销方案
  • 幻灯网站源码seo专员是什么
  • 上传网站软件网站被禁用如何解决
  • 网站建设费用的请示百度电脑版官方下载
  • 微网站套餐互联网营销师培训课程免费
  • 山东网站seo公司整合营销公司排名
  • 阿里网站怎么建设怎么推广一个app
  • 网站建设网络课程什么平台打广告比较好免费的
  • 网站设计与制作优点中国站长网站
  • 做餐厅logo什么网站素材多百度推广工具
  • 设计好用的网站公司以优化为理由裁员合法吗
  • 财富半岛建设购物网站域名批量查询工具
  • 企查查在线查询入口石家庄seo代理商
  • 婚纱网站论文网店推广方法有哪些
  • 找个做网站的微博营销的特点
  • 怎么给购物网站做推广上海网站设计公司