链表信息分类问题
来源:互联网 发布:gui table 选中列 java 编辑:程序博客网 时间:2024/05/04 07:05
链表信息分类问题
- 主要是把原链表中的元素依次检测并分类插入到新建链表中实现分类,将原链表中的元素取出插入到其他链表的同时删除元素,这样剩下的就是另一类元素了,这样做的空间复杂度不敢说是最低的,但从分类并储存这点来说,空间复杂度应该算是较低的,当然这样做是牺牲了时间复杂度的前提下;(果然还是细节重要啊,一个j++忘记写导致我一段时间怀疑链表删除函数是不是学错了,当然还有一个重点也是容易忽略的:每删除一个节点后应使该节点重新指向原位置,这里我使用了一个前驱节点来实现这个问题)
#include<iostream>#include<stdlib.h>#include<string.h>#include<stdio.h>using namespace std;typedef struct Node{ char data; Node *next;}Linklist;int Check(char e)//检查字符类型{ if (e >= 'a' && e <= 'z' || e > 'A' && e <= 'Z') return 1; else if (e >= '0' && e <= '9') return 0; else return -1;}void Deleted(Linklist *&A, int i)//删除链表元素{ Linklist *p = A, *q; int j = 0; while (j != i) { p = p->next; j++; } q = p->next; p->next = q->next; free(q);}void Insert(Linklist *&L, char e)//尾插法插入元素{ Linklist *t, *p = L; t = (Linklist *)malloc(sizeof(Linklist)); t->data = e; while (p->next != NULL) p = p->next; p->next = t; t->next = NULL;}void Displist(Linklist *L)//输出链表{ Linklist *p = L->next; while (p != NULL) { cout << p->data; p = p->next; }}int main(){ char w[100]; int i; Linklist *A, *B, *C, *p, *q, *t; cin >> w; A = (Linklist *)malloc(sizeof(Linklist)); A->next = NULL; p = A; for (i = 0;i < strlen(w);i++) { t = (Linklist *)malloc(sizeof(Linklist)); t->data = w[i]; p->next = t; p = t; } p->next = NULL; B = (Linklist *)malloc(sizeof(Linklist)); B->next = NULL; C = (Linklist *)malloc(sizeof(Linklist)); C->next = NULL; i = 0; p = A; q = p->next; while (q != NULL) { if (Check(q->data) == 0) { Insert(B, q->data); Deleted(A, i); q = p->next; } else if (Check(q->data) == 1) { Insert(C, q->data); Deleted(A, i); q = p->next; } else { p = p->next; q = q->next; i++; } } Displist(B); cout << endl; Displist(C); cout << endl; Displist(A); cout << endl; return 0;}
1 0
- 链表信息分类问题
- 分类信息的战国时代
- 信息分类编码
- 分类的信息扫描
- 信息分类-区域数据表
- 最全电商分类信息(01)
- 最全电商分类信息(02)
- 最全电商分类信息(03)
- 最全电商分类信息(04)
- 最全电商分类信息(05)
- 最全电商分类信息(06)
- 最全电商分类信息(07)
- 最全电商分类信息(08)
- 最全电商分类信息(09)
- 最全电商分类信息(10)
- 最全电商分类信息(11)
- 分类问题
- 分类问题
- 发送短信
- 个位数和个位数相乘
- 属性动画基础之ValueAnimator
- font-family
- 阶乘
- 链表信息分类问题
- 那些著名或非著名的iOS面试题(上)
- Android 各大网络请求库的比较及实战,android请求库实战
- Android技术博文汇总
- vb
- 用来跟踪保存数据库更改的gem包paper_trail
- Xamarin.iOS - Handing Keyboard
- iOS陆哥开发笔记(九) (SDWebImage简单使用)
- 9个循环6