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

建设银行网站卡死德州seo外包

建设银行网站卡死,德州seo外包,怎样自己弄一个网站,网站策划书内容不包括什么#x1f308;带头双向循环链表 描述#xff1a;一个节点内包含两个指针#xff0c;一个指向上一个节点#xff0c;另一个指向下一个节点。哨兵位指向的下一个节点为头节点#xff0c;哨兵位的上一个指向尾节点。 结构优势#xff1a;高效率找尾节点#xff1b;高效率插入…带头双向循环链表 描述一个节点内包含两个指针一个指向上一个节点另一个指向下一个节点。哨兵位指向的下一个节点为头节点哨兵位的上一个指向尾节点。 结构优势高效率找尾节点高效率插入与删除无需判断多种复杂情况如尾节点、空节点等。 实现带头双向循环链表 ☀️list.h #define _CRT_SECURE_NO_WARNINGS #pragma once #includestdio.h #includestdlib.h #includeassert.htypedef int DataType; typedef struct ListNode {struct ListNode* prev;struct ListNode* next;DataType data; }ListNode;ListNode* BuyListNode(DataType x); ListNode* InitList(); void DestroyList(ListNode* phead);void Print(ListNode* phead); int CountSize(ListNode* phead);void PushBack1(ListNode* phead, DataType x); void PushBack2(ListNode* phead, DataType x);void PopBack1(ListNode* phead); void PopBack2(ListNode* phead);void PushFront1(ListNode* phead, DataType x); void PushFront2(ListNode* phead, DataType x);void PopFront1(ListNode* phead); void PopFront2(ListNode* phead);void Insert(ListNode* pos, DataType x); void Erase(ListNode* pos); ☀️list.c BuyListNode节点创建函数 ListNode* BuyListNode(DataType x) {ListNode* node (ListNode*)malloc(sizeof(ListNode));if (node NULL) {perror(malloc fail);exit(-1);}node-data x;node-prev NULL;node-next NULL;return node; }InitList链表初始化函数 ListNode* InitList() {ListNode* phead BuyListNode(0);phead-next phead;phead-prev phead;return phead; }DestroyList链表销毁函数 void DestroyList(ListNode* phead) {assert(phead);ListNode* cur phead-next;while (cur ! phead) {ListNode* curnext cur-next;free(cur);cur curnext;}free(phead); }打印节点信息函数Print void Print(ListNode* phead) {assert(phead);printf(phead);ListNode* cur phead-next;while (cur ! phead) {printf(%d, cur-data);cur cur-next;}printf(\n); }统计节点个数函数CountSize int CountSize(ListNode* phead) {assert(phead);int size 0;ListNode* cur phead-next;while (cur ! phead) {size;cur cur-next;}return size; }在pos位置节点前插入函数Insert //在pos前插入 void Insert(ListNode* pos, DataType x) {assert(pos);ListNode* posprev pos-prev;ListNode* newnode BuyListNode(x);posprev-next newnode;newnode-prev posprev;newnode-next pos;pos-prev newnode; }删除pos位置节点函数Erase void Erase(ListNode* pos) {assert(pos);ListNode* posprev pos-prev;ListNode* posnext pos-next;free(pos);posprev-next posnext;posnext-prev posprev; }尾插两种方法PushBack1PushBack2 void PushBack1(ListNode* phead, DataType x) {ListNode* tail phead-prev;ListNode* newnode BuyListNode(x);newnode-next phead;phead-prev newnode;tail-next newnode;newnode-prev tail; } void PushBack2(ListNode* phead, DataType x) {//尾插就相当于在哨兵位head前插入Insert(phead, x); }尾删两种方法PopBack1PopBack2 void PopBack1(ListNode* phead) {assert(phead);assert(phead-next ! phead);ListNode* tail phead-prev;ListNode* tailprev tail-prev;free(tail);tailprev-next phead;phead-prev tailprev; } void PopBack2(ListNode* phead) {//尾节点就是phead的prev节点Erase(phead-prev); }头插两种方法PushFront1PushFront2 void PushFront1(ListNode* phead, DataType x) {assert(phead);ListNode* newnode BuyListNode(x);ListNode* pheadnext phead-next;newnode-next pheadnext;pheadnext-prev newnode;phead-next newnode;newnode-prev phead; } void PushFront2(ListNode* phead, DataType x) {//头插就相当于在phead后一个节点的前面插入assert(phead);Insert(phead-next, x); }头删两种方法PopFront1PopFront2 void PopFront1(ListNode* phead) {assert(phead);assert(phead-next ! phead);ListNode* first phead-next;ListNode* second first-next;free(first);phead-next second;second-prev phead; } void PopFront2(ListNode* phead) {//头节点时哨兵位phead的下一个节点Erase(phead-next); }☀️测试 测试尾插test_PushBack( #define _CRT_SECURE_NO_WARNINGS #includelist.h void test_PushBack() {ListNode* plist InitList();PushBack1(plist, 1);PushBack1(plist, 2);PushBack1(plist, 3);PushBack2(plist, 1);PushBack2(plist, 2);PushBack2(plist, 3);Print(plist);DestroyList(plist); }测试结果 测试尾删test_PopBack void test_PopBack() {ListNode* plist InitList();PushBack1(plist, 1);PushBack1(plist, 2);PushBack1(plist, 3);PushBack2(plist, 1);PushBack2(plist, 2);PushBack2(plist, 3);Print(plist);PopBack1(plist);Print(plist);PopBack2(plist);Print(plist);DestroyList(plist); }测试结果 测试头插test_PushFront void test_PushFront() {ListNode* plist InitList();PushFront1(plist, 1);PushFront1(plist, 2);PushFront1(plist, 3);PushFront2(plist, 1);PushFront2(plist, 2);PushFront2(plist, 3);Print(plist);DestroyList(plist); }测试结果 测试头删test_PopFront void test_PopFront() {ListNode* plist InitList();PushFront1(plist, 1);PushFront1(plist, 2);PushFront1(plist, 3);PushFront2(plist, 1);PushFront2(plist, 2);PushFront2(plist, 3);Print(plist);PopFront1(plist);Print(plist);PopFront2(plist);Print(plist);DestroyList(plist); }测试结果 测试用主函数 int main() {//测试尾插test_PushBack();//测试尾删test_PopBack();//测试头插test_PushFront();//测试头删test_PopFront(); }
http://www.zqtcl.cn/news/984861/

相关文章:

  • 网站开发技术和seo的联系精品课程网站建设 公司
  • 大型网站建设一般多少钱wordpress 调用百度前端公众库
  • 个人电脑做网站服务器网站地方网站域名用全拼
  • 我们网站在那里登陆后台系统管理成都app制作开发
  • 可以做问卷调查的网站仙居网站建设
  • 知名网站建设公司电话做一个小程序需要多少钱
  • 外贸找客户有什么网站个人如何做网站
  • 旅游项目网站开发ui界面设计分析
  • 企业建设网站没有服务器代理网页浏览
  • 深圳网站建设新闻网站建设营销的企业
  • 建筑设计网站软件排名工具
  • wordpress theme珠宝最适合seo的网站源码
  • 建设工程规划许可证查询网站畜牧业网站模板
  • 做网站大概要多少钱页面网站缓存如何做
  • 家电网站建设需求分析朔州网络推广
  • 陕西交通建设集团网站体检网络营销中自建网站
  • 做游戏的php网站有哪些微信商城是什么
  • wordpress memcached redux深圳网站优化方法
  • 移动商城 网站建设方法方式韩国导航地图app
  • 企业网站源码是什么瑞安企业做网站
  • 佛山深圳建网站wordpress 段代码
  • 网站备案 强制仿牌网站容易被攻击吗
  • 网站做访问追踪js特效演示网站
  • 建设网站女装名字大全宝宝投票网站怎么做
  • 江苏省建设厅网站首页天津百度网站排名优化
  • 织梦网络设计工作室网站模板镇江市精神文明建设网站
  • 网站管理工具装修公司设计软件有哪些
  • 招标网站的服务费怎么做分录什么网站做玩具的比较多
  • 青海省住房建设厅网站WordPress主题启用出现错误
  • 自己怎么建网站网站的seo 如何优化