单向链表的创建,插入,删除,排序,查找---新人贴
来源:互联网 发布:第九届杭州网络文化节 编辑:程序博客网 时间:2024/06/07 00:31
#include<iostream>using namespace std;typedef int ValType;typedef struct Node{ValType val;struct Node * next;}Node;void ListNodeCreat(Node *&Star,int n){Node* New ;Star = (Node *)malloc(sizeof(Node*));Star->val = 0;Star->next = NULL;ValType NewVal=0;cout << "Now,Input the Val of ListNode!" << endl;for (int i =0; i <n ;i++){New = (Node*)malloc(sizeof(Node*));cin >> New->val;New->next = Star->next;Star->next = New;}}int LangTest(struct Node *ListNode){Node *Tmp;Tmp = (Node* )malloc(sizeof(Node*));int cnt = 0;Tmp = ListNode;while (Tmp != NULL){Tmp = Tmp->next;cnt++;}cnt--;return cnt;}void Display(struct Node *ListNode){Node* tmp;tmp = (Node*)malloc(sizeof(Node*));tmp = ListNode->next;cout << "The ListNode:" ;while (tmp != NULL){cout << tmp->val << "->";tmp = tmp->next;}cout << endl;}void InsertListNode(struct Node *ListNode,int val,int num){Node* tmp;tmp = (Node*)malloc(sizeof(Node*));tmp=ListNode->next;int cnt = 1;while (tmp != NULL){if (cnt == num-1){Node *New;New = (Node*)malloc(sizeof(Node*));New->val = val;New->next = tmp->next;tmp->next = New;break;}cnt++;tmp = tmp->next;}if (tmp == NULL)cout <<"The ListNode is too short!"<< endl;}void RemoveListNode(struct Node *ListNode, int num){Node* tmp;tmp = (Node*)malloc(sizeof(Node*));tmp = ListNode->next;int cnt = 1;while (tmp != NULL){if (cnt == num-1){tmp->next = tmp->next->next;break;}cnt++;tmp = tmp->next;}if (tmp == NULL)cout << "The ListNode is too short!" << endl;}void SortListNode(struct Node *ListNode){Node *tmp;ValType val_tmp = 0;tmp = (Node*)malloc(sizeof(Node*));int lang = LangTest(ListNode);int i = 0;int j = 0;for (i = 0; i < lang - 1; i++){tmp = ListNode->next;for (j = 0; j < lang - 1 - i; j++){if ((tmp->val)>(tmp->next->val)){val_tmp = tmp->val;tmp->val = tmp->next->val;tmp->next->val = val_tmp;}tmp = tmp->next;}}}void FindListNode(struct Node *ListNode,int num){Node* tmp;tmp = (Node*)malloc(sizeof(Node*));tmp = ListNode->next;int cnt = 1;while (tmp != NULL){if (cnt == num - 1){cout << "The position "<<num<<" is:"<<tmp->val << endl;break;}cnt++;tmp = tmp->next;}if (tmp == NULL)cout << "The ListNode is too short!" << endl;}int main(){printf("Input:How long the ListNode!\n");int lang = 0;cin >> lang;Node *l1,*l2;l1 = (Node*)malloc(sizeof(Node*));l2 = (Node*)malloc(sizeof(Node*));ListNodeCreat(l1,lang);cout << "Creat:" << endl;Display(l1);InsertListNode(l1, 10, 4);cout << "Insert:" << endl;Display(l1);RemoveListNode(l1,3);cout << "Remove:" << endl;Display(l1);SortListNode(l1);cout << "Sort:" << endl;Display(l1);FindListNode(l1, 4);while (1);return 0;}
0 0
- 单向链表的创建,插入,删除,排序,查找---新人贴
- 单向链表的操作:创建,删除,插入,销毁,查找
- 单向链表的创建 删除 插入
- 单向动态链表的创建、输入、插入、删除、输出
- 单向动态链表的创建、输入、插入、删除、输出
- 单向循环链表的创建/插入/删除/输出算法
- 单向链表的创建、查找、删除、打印
- 链表的删除,插入,查找,排序
- C++链表的创建、插入、删除、查找、合并、排序、修改等操作的实现
- 链表的创建 查找 排序 插入 删除 逆序 长度 显示
- 单向链表的插入删除代码
- 两种实现 无头结点单向链表 的插入、查找、删除
- 单向链表的创建、遍历、求长、判存、判空、插入、删除、查找(按位置或元素)、合并
- 单向循环链表创建、遍历、插入、删除、查找(按位置,按元素值)、清空、销毁
- 单向链表的插入排序
- 线性表之单向链表的创建、插入、删除和清除
- C语言单向链表的创建、释放、插入、删除、翻转操作练习
- 单向链表的相关操作(创建,遍历,插入,删除,逆置)
- Android事件机制
- Android DateUtlis(日期工具类)
- R语言︱文本(字符串)处理与正则表达式
- Linux系统故障分析与排查
- android 文件存储调试细节(小米系统)
- 单向链表的创建,插入,删除,排序,查找---新人贴
- 推荐一个压缩图片,但是品质影响不大的网站
- 虚拟机怎么用U盘重装系统
- Scoi 2016 省选酱油记
- 删除成本中心主档
- 在HANA里设置后台Job
- activity被回收之保存数据
- CentOS 6 安装Hadoop 2.6 (四)运行简单例子
- 导航栏下拉菜单