自定义链表
来源:互联网 发布:rfcn网络 编辑:程序博客网 时间:2024/06/07 03:15
#include <iostream>#include <time.h>#include <math.h>#include <stdlib.h>using namespace std;struct List{List(){data = 0;next =NULL;}int data;List* next;};void List_Print(List* head){List* p = head;while(p->next){cout<<" "<<p->next->data;p = p->next;}cout<<endl;}void List_Append(List* head,int data){List* p = head;while(p->next)p = p->next;p->next = new List;p->next->data = data;}void List_Remove(List* head,int data){List* p = head;while(p->next){if(p->next->data == data){List* tmp = p->next;p->next = tmp->next;delete tmp;}p = p->next;}}void List_Reverse(List* head){if(head->next == NULL || head->next->next == NULL)return;List_Reverse(head->next);List* end = head;while(end->next){end = end->next;}List* lasthead = head->next;head->next = lasthead->next;lasthead->next = NULL;end->next = lasthead;}void List_Sort(List* head){List* p = head;while(p->next){List* tmp = head;while(tmp->next && tmp->next->data < p->next->data){tmp = tmp->next;}if(tmp->next != p->next){List* cur = p->next;p->next = cur->next;cur->next = tmp->next;tmp->next = cur;}else{p = p->next;}}}int _tmain(int argc, _TCHAR* argv[]){srand(time(NULL));List head;head.next = NULL;for (int i=0;i<10;++i){List_Append(&head,rand()&0xFF);}cout<<"初始:";List_Print(&head);/*int i;cin>>i;cout<<"删除:";List_Remove(&head,i);List_Print(&head);*/cout<<"翻转:";List_Reverse(&head);List_Print(&head);cout<<"排序:";List_Sort(&head);List_Print(&head);return 0;}
运行结果:
0 0
- 自定义链表
- 链表自定义队列
- C#自定义链表
- C#自定义链表
- Java自定义链表
- 自定义集合双向链表
- Java实现自定义链表
- Java 自定义链表MiniList
- Java实现自定义链表
- java自定义栈(链表实现)
- C++自定义链表操作实现
- 双向循环链表-模板-自定义类型
- 自定义单向链表实现(详细)
- 链表实现自定义的队列
- C++自定义链表实现约瑟夫环
- 自定义控件和自定义样式表
- 自定义链栈
- 自定义securityFilter过滤链
- JSon SuperObject 研究2:数据集与JSON对象互转
- LeetCode Longest Palindromic Substring
- Apache服务器
- 直接内存访问笔记
- nodejs提取网页内容
- 自定义链表
- 5555555555555
- 数据和操作典型异常场景
- poj 3670 Eating Together dp
- ubuntu adt eclipse error = 2
- 数据和操作典型异常场景 2
- 神神秘秘上电股份
- 切换电脑 主题包 解决 浏览器背景 以及软件 输入框背景色泽异常
- JAVA中文字符编码问题详解(1)(转)