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

物流网站怎么做代理网站文章怎么做内链

物流网站怎么做代理,网站文章怎么做内链,lnmp下的wordpress,什么网站上做推广目录 数组与链表算法-单向链表算法 C代码 单向链表插入节点的算法 C代码 单向链表删除节点的算法 C代码 对单向链表进行反转的算法 C代码 单向链表串接的算法 C代码 数组与链表算法-单向链表算法 在C中#xff0c;若以动态分配产生链表节点的方式#xff0c;则可以…目录 数组与链表算法-单向链表算法 C代码 单向链表插入节点的算法 C代码 单向链表删除节点的算法 C代码 对单向链表进行反转的算法 C代码 单向链表串接的算法 C代码 数组与链表算法-单向链表算法 在C中若以动态分配产生链表节点的方式则可以先行定义一个类数据类型接着在类中定义一个指针变量其数据类型与此类相同作用是指向下一个链表节点另外类中至少要有一个数据字段。例如声明一个学生成绩链表节点的结构并且包含两个数据字段姓名name)和成绩score以及一个指针next。接着就可以动态创建链表中的每个节点。假设现在要新增一个节点至链表的末尾且ptr指向链表的第一个节点程序必须设计以下4个步骤 动态分配内存空间给新节点使用。将原链表尾部的指针next指向新元素所在的内存位置内存地址。将ptr指针指向新节点的内存位置表示这是新的链表尾部。由于新节点当前为链表的最后一个元素因此将它的指针next指向NULL。 遍历Traverse单向链表的过程就是使用指针运算来访问链表中的每个节点。如果要遍历已建立的单向链表就可以使用结构指针ptr来作为链表的读取游标一开始指向链表的头。每次读完链表的一个节点就将ptr往下一个节点移动指向下一个节点直到ptr指向NULL为止。 C代码 #includeiostream using namespace std;class list { public:int num;char name[10];int score;class list* next; };void SetList(list* tempList) {cout 请输入学号;cin tempList-num;cout 请输入姓名;cin tempList-name;cout 请输入成绩;cin tempList-score; }int main() {list* newnode;list* ptr;list* delptr;cout 请输入5位学员的数据 endl;delptr new list;SetList(delptr);ptr delptr;for (int i 1; i 5; i) {newnode new list;SetList(newnode);newnode-next nullptr;ptr-next newnode;ptr ptr-next;}cout 学生成绩 endl;cout 学号\t姓名\t成绩\n endl;ptr delptr;while (ptr ! nullptr) {cout ptr-num \t ptr-name \t ptr-score endl;ptr ptr-next;}return 0; } 输出结果 单向链表插入节点的算法 将新节点加到第一个节点之前即成为此链表的首节点。将新节点加到最后一个节点之后。将新节点加到链表中间的位置。 C代码 #includeiostream using namespace std;class list { public:int num;char name[10];int score;class list* next; };void SetList(list* tempList) {cout 请输入学号;cin tempList-num;cout 请输入姓名;cin tempList-name;cout 请输入成绩;cin tempList-score; }void PrintList(list* head) {list* ptr head;while (ptr ! nullptr) {cout ptr-num \t ptr-name \t ptr-score endl;ptr ptr-next;} }list* FindNode(list* head, int num) {list* ptr;ptr head;while (ptr ! nullptr) {if (ptr-num num)return ptr;ptr ptr-next;}return ptr; }list* InsertNode(list* head, list* ptr, list* tempList) {if (ptr nullptr) {tempList-next head;return tempList;}else {if (ptr-next nullptr) {ptr-next tempList;}else {tempList-next ptr-next;ptr-next tempList;}}return head; }int main() {list* newnode;list* ptr;list* head;cout 请输入3位学员的数据 endl;head new list;SetList(head);ptr head;for (int i 1; i 3; i) {newnode new list;SetList(newnode);newnode-next nullptr;ptr-next newnode;ptr ptr-next;}cout endl;cout 学生成绩 endl;cout 学号\t姓名\t成绩\n endl;PrintList(head);int position;while (true){cout 请输入要插入其后的学生学号要结束请输入-1;cin position;if (position -1)break;else {ptr FindNode(head, position);newnode new list;SetList(newnode);head InsertNode(head, ptr, newnode);}}cout endl;cout 学生成绩 endl;cout 学号\t姓名\t成绩\n endl;PrintList(head);return 0; } 输出结果 单向链表删除节点的算法 删除链表的第一个节点删除链表的最后一个节点删除链表的中间节点 C代码 #includeiostream using namespace std;class list { public:int num;char name[10];int score;class list* next; };void SetList(list* tempList) {cout 请输入学号;cin tempList-num;cout 请输入姓名;cin tempList-name;cout 请输入成绩;cin tempList-score; }void PrintList(list* head) {list* ptr head;while (ptr ! nullptr) {cout ptr-num \t ptr-name \t ptr-score endl;ptr ptr-next;} }list* FindNode(list* head, int num) {list* ptr;ptr head;while (ptr ! nullptr) {if (ptr-num num)return ptr;ptr ptr-next;}return ptr; }list* DeleteNode(list* head, list* ptr) {list* top;top head;if (ptr head) {head head-next;}else {while (top-next ! ptr)top top-next;if (ptr-next nullptr)top-next nullptr;elsetop-next ptr-next;}cout 已删除第 ptr-num 号学生的信息 endl;delete ptr;return head; }int main() {list* newnode;list* ptr;list* head;cout 请输入3位学员的数据 endl;head new list;SetList(head);ptr head;for (int i 1; i 3; i) {newnode new list;SetList(newnode);newnode-next nullptr;ptr-next newnode;ptr ptr-next;}cout endl;cout 学生成绩 endl;cout 学号\t姓名\t成绩\n endl;PrintList(head);int position;while (true) {cout 请输入要插入其后的学生学号要结束请输入-1;cin position;if (position -1)break;else {ptr FindNode(head, position);head DeleteNode(head, ptr);}}cout endl;cout 学生成绩 endl;cout 学号\t姓名\t成绩\n endl;PrintList(head);return 0; } 输出结果 对单向链表进行反转的算法 了解单向链表节点的插入和删除之后大家会发现在这种具有方向性的链表结构中增删节点是相当容易的一件事。而要从头到尾输出整个单向链表也不难但若要反转过来输出单向链表则需要某些技巧。我们知道单向链表中的节点特性是知道下一个节点的位置是无从得知它的上一个节点的位置。如果要将单向链表反转就必须使用3个指针变量如下面程序代码中的before、ptr、last。 C代码 #includeiostream using namespace std;class list { public:int num;char name[10];int score;class list* next; };void SetList(list* tempList) {cout 请输入学号;cin tempList-num;cout 请输入姓名;cin tempList-name;cout 请输入成绩;cin tempList-score; }void PrintList(list* head) {list* ptr head;while (ptr ! nullptr) {cout ptr-num \t ptr-name \t ptr-score endl;ptr ptr-next;} }list* TransposeNode(list* head) {list* ptr head;list* before nullptr;list* last nullptr;while (ptr ! nullptr) {last before; before ptr;ptr ptr-next;before-next last;}head before;return head; }int main() {list* newnode;list* ptr;list* head;cout 请输入3位学员的数据 endl;head new list;SetList(head);ptr head;for (int i 1; i 3; i) {newnode new list;SetList(newnode);newnode-next nullptr;ptr-next newnode;ptr ptr-next;}cout endl;cout 学生成绩 endl;cout 学号\t姓名\t成绩\n endl;PrintList(head);head TransposeNode(head);cout endl;cout 反转算法 endl;cout 学号\t姓名\t成绩\n endl;PrintList(head);return 0; } 输出结果 单向链表串接的算法 对于两个或两个以上的链表的串接Concatenation也称为级联实现起来很容易只要将链表的首尾相连即可。 C代码 #includeiostream using namespace std;class list { public:int num;char name[10];int score;class list* next; };void SetList(list* tempList) {cout 请输入学号;cin tempList-num;cout 请输入姓名;cin tempList-name;cout 请输入成绩;cin tempList-score; }void PrintList(list* head) {list* ptr head;while (ptr ! nullptr) {cout ptr-num \t ptr-name \t ptr-score endl;ptr ptr-next;} }list* ConcatNode(list* head1, list* head2) {list* ptr;ptr head1;while (ptr-next ! nullptr)ptr ptr-next;ptr-next head2;return head1; }int main() {list* newnode;list* ptr;list* head1;list* head2;cout 请输入第一组3位学员的数据 endl;head1 new list;SetList(head1);ptr head1;for (int i 1; i 3; i) {newnode new list;SetList(newnode);newnode-next nullptr;ptr-next newnode;ptr ptr-next;}cout endl;cout 第一组学生成绩 endl;cout 学号\t姓名\t成绩\n endl;PrintList(head1);cout 请输入第二组3位学员的数据 endl;head2 new list;SetList(head2);ptr head2;for (int i 1; i 3; i) {newnode new list;SetList(newnode);newnode-next nullptr;ptr-next newnode;ptr ptr-next;}cout endl;cout 第二组学生成绩 endl;cout 学号\t姓名\t成绩\n endl;PrintList(head2);head1 ConcatNode(head1, head2);cout endl;cout 串接算法 endl;cout 学号\t姓名\t成绩\n endl;PrintList(head1);return 0; } 输出结果
http://www.hkea.cn/news/14454090/

相关文章:

  • 顺德网站建设公司咨询廊坊中小企业网站制作
  • discuz!网站模板专门做二手手机的网站有哪些
  • 对运营网站有什么见解seo工具软件
  • 如何获得个人免费网站空间情人节给女朋友做网站
  • 宁陵做网站的公司北京西站
  • 游戏网站logo制作wordpress做站群
  • 上海企业网站建设公司做网站设计参考文献
  • 易捷网站内容管理系统漏洞网络公司是做什么
  • 太原谁家网站做的好河南郑州网站推广优化
  • 电子商务网站项目预算搜索引擎优化的简写是
  • 购物网站多少钱用lls建设一个网站
  • 工业设计网站 知乎网站开发的职业认知报告
  • wordpress json 插件安装国内谷歌网站SEO优化
  • 网站服务器怎么启动基金会网站开发方案
  • 电子商务网站策划书3500字注册公司名称用什么名字好
  • 福州网站建设新闻温州网站建设模板下载免费
  • 网站建设金手指霸屏wordpress通过标题调用相关文章
  • 网站风格确定seo成创网络
  • 阿根廷网站后缀scrm企业微信管理系统
  • 节约化网站群建设情况南充做网站的公司
  • 做网站申请域名大概花费多少用wordpress做广告收益
  • dedecms医院网站wap模板(橙色)4512345《网站建设》期末考试
  • 先做网站还是先做app全网营销包括什么
  • 无锡祥搜做网站推广做网站竟然不知道cms
  • 上海低价网站建设国家企业信用信息系统年报入口
  • 做推广都有哪些网站wordpress video gallery
  • 可以做同城活动的网站公司内部网络怎么建立
  • 网站备案号官网设计公司企业官网
  • 建站模板源码typecodes wordpress
  • 一个网站做各种好玩的实验推广的方式有哪些