双链表的操作
来源:互联网 发布:淘宝只退款不退货教程 编辑:程序博客网 时间:2024/06/11 04:11
#include <iostream>#define NIL 0using namespace std;struct list{ int data; list *last; list *next; list(int data) { this->data=data; this->last=NIL; this->next=NIL; }};struct Link{ list *head;};INSERT(Link &L,list &x) //将x插入链表L中{ x.next=L.head; if(L.head != NIL) L.head->last=&x; L.head=&x; x.last=NIL;}DELETE_ELEMENT(Link &L,list &x) //删除L链表中的x元素{ if(x.last != NIL) x.last->next=x.next; else L.head=x.next; if(x.next != NIL) x.next->last=x.last;}int SEARCH(Link &L,int key) //寻找链表中具有key关键字的元素,返回其位置{ int i=1; list *p; p=L.head; while(p) { if(p->data == key) return i; p=p->next; i++; } return 0;}int DELETE_KEY(Link &L,int key) //删除L链表中具有key关键字的元素,首先需要寻找此元素{ int temp; temp=SEARCH(L,key); if(temp == 0) { cout << "not found" << endl; return 0; } else { list *p; p=L.head; while(--temp) p=p->next; if(p->last != NIL) p->last->next=p->next; else L.head=p->next; if(p->next != NIL) p->next->last=p->last; return p->data; }}int main(int argc, char *argv[]){ Link L; L.head=NIL; list x(15); INSERT(L,x); list y(25); INSERT(L,y); int dele=DELETE_KEY(L,25); cout << L.head->data <<endl; cout << dele <<endl; cout << "Hello World!" << endl; return 0;}
阅读全文
0 0
- 双链表的相关操作
- 双链表的基本操作
- 双链表的基本操作
- 双链表的简单操作
- 双链表的基本操作
- 双链表的算法操作
- 双链表的基本操作
- 双链表的操作
- 数据结构->双链表的操作
- 双链表的插入删除操作
- 数据结构—双链表的操作
- C++ 双链表的基本操作
- 双链表有关操作的实现
- 双链表的操作java版本
- 循环双链表的简单操作
- 单链表、双链表的基本操作
- 关于双链表的相关操作
- 双链表的结构及其操作
- wb格式读入文件下使用fread函数会出错
- java中ftp文件上传和中文乱码解决
- jQuery与MooTools库的一些比对
- Redis主从复制
- 运输层协议——TCP
- 双链表的操作
- [iOS @2x @3x pt px 分辨率]
- 想要给PDF文件添加标签该如何去进行操作
- 排序算法之堆排序
- Web.xml配置详解之context-param
- [leetcode]131. Palindrome Partitioning
- ThreadLocal与ThreadLocalMap源码解析
- Spark成长之路(8)-TFIDF
- 剑指offer面试题[54]-表示数值的字符串