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

常州模板网站建设价格什么是网站维护费

常州模板网站建设价格,什么是网站维护费,贵阳哪家网站建设公司好,中装建设吧引言#xff1a; 链表是一种常见的数据结构#xff0c;它由一系列节点组成#xff0c;每个节点包含一个数据元素和一个指向下一个节点的指针。相比于数组#xff0c;链表具有动态性和灵活性#xff0c;可以高效地进行插入和删除操作#xff0c;但是查找操作的时间复杂度较…引言 链表是一种常见的数据结构它由一系列节点组成每个节点包含一个数据元素和一个指向下一个节点的指针。相比于数组链表具有动态性和灵活性可以高效地进行插入和删除操作但是查找操作的时间复杂度较高。在C中我们可以通过定义一个节点结构体和一个链表类来实现链表。 技术实现 首先我们定义一个节点结构体Node包含一个数据元素data和一个指向下一个节点的指针next。这里使用了模板typename Element表示可以存储任意类型的数据元素。 templatetypename Element struct Node {Element data;NodeElement* next; };接下来我们定义一个链表类LinkList包含一些常用的操作函数。构造函数LinkList()用于创建一个空链表构造函数LinkList(Element a[], int n)用于创建一个包含n个元素的链表析构函数~LinkList()用于释放链表的内存空间。getlenth()函数用于获取链表的长度getItem(int i)函数用于获取链表中第i个元素locate(Element x)函数用于查找元素x在链表中的位置insert(int i, Element x)函数用于在链表中第i个位置插入元素xremove(int i)函数用于删除链表中第i个元素empty()函数用于判断链表是否为空printList()函数用于打印链表中所有元素。 templatetypename Element class LinkList { public:LinkList();LinkList(Element a[], int n);~LinkList();int getlenth();Element getItem(int i);int locate(Element x);void insert(int i, Element x);Element remove(int i);bool empty();void printList(); private:NodeElement* head; }; 在LinkList类的实现中我们需要注意一些细节。首先在构造函数LinkList()中我们需要将头指针head初始化为空指针。在构造函数LinkList(Element a[], int n)中我们需要依次创建n个节点并将它们连接起来。在析构函数~LinkList()中我们需要依次删除所有节点并释放它们的内存空间。在insert(int i, Element x)函数中我们需要先找到第i-1个节点然后插入新节点并将它的next指针指向第i个节点。在remove(int i)函数中我们需要先找到第i-1个节点然后将它的next指针指向第i1个节点并删除第i个节点。  templatetypename Element LinkListElement::LinkList() {head new NodeElement;head-next nullptr; }//头插法初始化 templatetypename Element LinkListElement::LinkList(Element a[], int n) {head-next nullptr;for (int i 0; i n; i) {LinkList s;s-data a[i];s-next head-next;head-next s;} }templatetypename Element LinkListElement::~LinkList() {while (head-next ! nullptr) {Element* p head-next;head-next p-next;delete p;} }templatetypename Element int LinkListElement::getlenth() {int count 0;LinkList* p head-next;while (p ! nullptr) {count;p p-next;}return count; }templatetypename Element Element LinkListElement::getItem(int i) {int j 0;LinkList* p head-next;while (j i) {j;p p-next;if (p nullptr) {printf( 不存在\n);break;}}return p-data; }templatetypename Element int LinkListElement::locate(Element x) {LinkList* p head-next;int j 0;while (p ! nullptr) {j;p p-next;if (p -data x) {return j;}}}templatetypename Element void LinkListElement::insert(int i, Element x) {LinkList* p head;int j 0;while (p ! nullptr j i - 1) {p p-next;j;}if (p nullptr) printf(插入位置异常\n);else {LinkList s;s-data x;s-next p-next;p-next s;} }templatetypename Element Element LinkListElement::remove(int i) {LinkList p head;int j 0;while (p ! nullptr j i - 1) {p p-next;j;}if (p nullptr || p-next nullptr) {printf( 删除位置异常\n);}else {LinkList q p-next;int x q-data;p-next q-next;delete q;return x;} }templatetypename Element bool LinkListElement::empty() {return head-next nullptr; }templatetypename Element void LinkListElement::printList() {LinkList p head-next;while (p ! nullptr ) {printf(%d , p-data);p p-next;}printf( \n); }最后我们可以在主函数中进行链表的测试。例如创建一个包含5个元素的链表插入一个元素删除一个元素并打印链表中所有元素。 int main() {int a[] { 1, 2, 3, 4, 5 };LinkListint list(a, 5);list.printList(); // 1 2 3 4 5list.insert(3, 6);list.printList(); // 1 2 6 3 4 5list.remove(4);list.printList(); // 1 2 6 4 5return 0; } 结尾  以上就是C实现链表的全部内容。链表是一种基础的数据结构掌握它的实现方法对于编写高效的算法和程序非常重要。
http://www.sadfv.cn/news/81879/

相关文章:

  • 浙江省建设协会网站房屋装修效果图整套
  • 网站运营刚做时的工作内容家居网站建设哪家好
  • 装潢公司企业网站源码seo页面内容优化
  • 金溪做网站广州推广优化
  • 网站推广的常用方法廊坊市 广阳区城市建设局网站
  • 网站如何做反爬宁波电信网站备案
  • 山东mip网站建设烟台北京网站建设公司哪家好
  • 医生做网站不违法网站模板 知乎
  • 做统计的网站吗Wordpress自建主题视频百度云下载
  • 公司为什么做网站wordpress视频存储
  • 溧阳网站建设报价upupw搭建wordpress
  • 北湖区网站建设哪个好陕西泰烜建设集团网站
  • 常州模板建站平台太原做网站多少钱
  • 公司做环评的网站国家林业工程建设协会网站
  • 大英网站建设工作河北省建设厅网站手机版
  • 深圳市国外网站建设网站建设能解决哪些问题
  • 做网站的人叫什么软件网页设计模板图片并排显示
  • 北京微信网站佛山o2o网站建设
  • 珠海市网站建设公司一站式服务工作总结
  • 延庆免费网站建设龙岗网红基地
  • 广州网站建设 企业石家庄学网站建设
  • 宁波搭建网站价格万网空间登录
  • 网站怎么做第三方登录东莞做网站做什么赚钱
  • 建筑局网站沈阳世纪兴电子商务服务中心
  • 如何在木上做网站表白网页生成器软件
  • 企业建设网站公司名称大全网站别名
  • 辽宁省建设工程招投标协会网站中国企业500强中海油排名
  • 西安网站制作公司怎么选自己开发app所需的各种费用
  • net实用网站开发网站运营阶段
  • 湖北专业网站建设公司网站建设工作室介绍范文