利用“哨兵”“实现双链表

下面的代码用一个”哨兵“实现双链表,感觉很简洁,中间也有点绕,暂时实现,供学习之用

1static Node list_handle = 2{ 3 &list_handle,&list_handle, 4}; 5 6 7bool addNode(Node* node) 8{ 9 if (node == NULL) 10 { 11 return false; 12 } 13 14 Node* guard = &list_handle; 15 node->next = guard; 16 node->prev = guard->prev; 17 node->prev->next = node; 18 node->next->prev = node; 19 20} 21 22 23void removeNode(Node *node) 24{ 25 if (node == NULL) 26 { 27 return; 28 } 29 30 node->prev->next = node->next; 31 node->next->prev = node->prev; 32 node->prev = NULL; 33 node->next = NULL; 34} 35 36 37void travel() 38{ 39 for (Node *node = list_handle.next;node != &list_handle ; node = node->next) 40 { 41 //对每个节点所进行的操作,这里只是简单的打印 42 cout<< node->data <<""<<endl; 43 } 44}

使用方法

1int _tmain(int argc, _TCHAR* argv[]) 2{ 3 4 Node n1; 5 n1.data = 100; 6 7 Node n2; 8 n2.data = 200; 9 10 Node n3; 11 n3.data = 300; 12 13 addNode(&n1); 14 addNode(&n2); 15 addNode(&n3); 16 17 travel(); 18 19 removeNode(&n2); 20 21 travel(); 22 23 return 0; 24}
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

Opencv中Mat矩阵相乘——点乘、dot、mul运算详解

Opencv中Mat矩阵相乘——点乘、dot、mul运算详解2016年09月02日00:00:36 \牧野(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fme.csdn.net%2Fdcrmg) 阅读数:59593

C# Aspose.Cells导出xlsx格式Excel,打开文件报“Excel 已完成文件级验证和修复。此工作簿的某些部分可能已被修复或丢弃”

报错信息:最近打开下载的Excel,会报如下错误。(xls格式不受影响)!(https://oscimg.oschina.net/oscnet/2b6f0c8d7f97368d095d9f0c96bcb36d410.png)!(https://oscimg.oschina.net/oscnet/fe1a8000d00cec3c

Linux查看GPU信息和使用情况

1、Linux查看显卡信息:lspci|grepivga2、使用nvidiaGPU可以:lspci|grepinvidia!(https://oscimg.oschina.net/oscnet/36e7c7382fa9fe49068e7e5f8825bc67a17.png)前边的序号"00:0f.0"是显卡的代

KVM调整cpu和内存

一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid