链表插入,删除,排序,反转
来源:互联网 发布:linux重启后进不去系统 编辑:程序博客网 时间:2024/06/11 00:58
- const常量有数据类型,宏常量没有。C++只使用const常量而不使用宏常量。
- const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。
- 不能在类声明中初始化const数据成员。只能在类构造函数的初始化表中进行。
- 字符串拷贝:
char *strcpy(char *strDest,const char *strSrc);{ assert((strDest!=NULL)&& (strSrc !=NULL)); char*address = strDest; while((*strDest++ =* strSrc++)!= ‘\0’ ) NULL; returnaddress; }
链表
#include<cstdlib>#include<iostream>using namespace std;struct node { node *next; int data;};node *create(){ node*head; node*p; node*q; int x; head =(node*)malloc(sizeof(node)); p =head; while(cin>> x) { if(x == 0) break; q =(node*)malloc(sizeof(node)); q->data =x; p->next =q; p = q; } head =head->next; p->next = NULL; return head;}int length(node*head) { int n = 0; node *p = head; while(p != NULL) { p =p->next; n++; } return n;}void print(node*head){ node *p =head; while(p !=NULL) { cout <<p->data << " "; p = p->next; } cout << endl;}node *del(node*head, int num){ node *p1 =head; node*p2; while(num!= p1->data &&p1->next != NULL) { p2 = p1; p1 =p1->next; } if(num ==p1->data) { if(p1 ==head) { head->next = p2; free(p1); } else { p2->next =p1->next; free(p1); } } else cout<< "Don't find"<< endl; return head;}node *insert(node*head, int num){ node*p0; node*p1; node*p2; p0 =(node*)malloc(sizeof(node)); p1 =head; p0->data = num; while(p0->data >p1->data &&p1->next != NULL) { p2 = p1; p1 =p1->next; } if(num<= p1->data) { if(p1 ==head) { p0->next = p1; head =p0; } else { p2->next =p0; p0->next =p1; } } else { p1->next =p0; p0->next =NULL; } return head;}node *sort(node*head){ int n =length(head); inttemp; if(head ==NULL || head->next == NULL) return head; node *p =head; for(int i =1; i < n; i++) { p = head; for(int j = 0; j < n-i; j++) { if(p->data> p->next->data) { temp = p->data; p->data =p->next->data; p->next->data =temp; } p =p->next; } } return head;} node*reverse(node *head){ node *p1 =head; node*p3; if(p1->next == NULL || p1 ==NULL) returnhead; node *p2 =p1->next; while(p2) { p3 = p2->next; p2->next = p1; p1 = p2; p2 = p3; } head->next = NULL; head =p1; return head;} int main(){ int num1, num2; node *root = create(); //cout<< length(root)<< endl; //print(root); //cin>> num1; //del(root, num1); //print(root); //cin>> num2; //insert(root, num2); //print(root); //sort(root); //print(root); reverse(root); print(root); system("pause"); return 0;}
- 链表插入,删除,排序,反转
- 数据结构之单向链表操作1-(插入,删除,交换,反转,排序等操作)
- 链表操作:创建,插入,排序,反转
- 链表操作:创建,插入,排序,反转
- 链表的删除 合并 排序 反转
- 单循环链表-创建、插入、删除、反转等操作
- 链表的创建,插入,删除,显示,反转
- 数据结构-链表创建,删除,插入,反转,连接
- 链表的基本操作,创建、删除、插入、反转
- 单链表的插入删除反转和冒泡排序单链表
- 链表的插入 删除 排序 倒叙
- 链表的删除,插入,查找,排序
- 双向链表排序,插入、删除
- C语言各种链表操作(创建、打印、删除、插入、反转)
- c语言实现单链表的操作:创建,删除,插入,反转, 排序等
- 链表的插入、删除、排序、追加等源码
- 03链表的创建、插入、删除、遍历、排序
- c语言链表的创建、插入、删除、排序
- KMP
- usaco1.1.*
- 认识六个被误解的 Ruby 特性
- usaco1.2.*
- 二叉树遍历
- 链表插入,删除,排序,反转
- 拓扑排序, 快速排序, 冒泡排序, 堆排序, 二分查找
- 2012年12月30日
- HDU 1074 Doing Homework(状态DP)
- 正则表达式
- 2013年01月01日
- 编程之美3.1 字符串移位包含问题
- 进化算法
- MRQEA算法(MapReduce和量子进化算法结合)并应用于0-1背包