数据结构字符统计.docVIP

  • 13
  • 0
  • 约1.78千字
  • 约 4页
  • 2016-05-25 发布于重庆
  • 举报
数据结构字符统计

实验一:字符分类频率统计 实验名称: 字符分类频率统计 二、实验目的: 将给定的字符串按数字字符,字母字符,其它字符三类进行链式分类存储并且打印出来。 实验内容及要求: 将给定的字符串按数字字符,字母字符,其它字符三类进行分类存储,统计各类字符出现的总个数。 四:概要设计: void Mylist::Insert(char x) { Node *p,*q; p=first; while (p-nextp-next-cx) p=p-next; if(p-nextp-next-c==x) p-next-count++; else { q=new Node; q-c=x; q-count=1; q-next=p-next; p-next=q; } first-count++; } 五:详细程序 #include iostream using namespace std; #define Maxsize 255 struct Node { char c; int count; Node *next; }; class Mylist { private: Node *first; public: Mylist(); void Insert(char x); void PrintList(); }; Mylist::Mylist() { first=new Node; first-next=NULL; first-count=0; } void Mylist::PrintList() { Node *p; p=first-next; while (p) { cout p-c:[p-count] ; p=p-next; } coutendl本类字符总数为:first-count\n; } void Mylist::Insert(char x) { Node *p,*q; p=first; while (p-nextp-next-cx) p=p-next; if(p-nextp-next-c==x) p-next-count++; else { q=new Node; q-c=x; q-count=1; q-next=p-next; p-next=q; } first-count++; } int kind(char a) { if(a=9a=0) return 0; else if(aaa=z||aAa=Z) return 1; else return 2; } void main() { cout请输入要判断的字符串! ; char s[Maxsize]; gets(s); Mylist L[3]; for(int i=0;istrlen(s);i++) { char ch=s[i]; int k=kind(ch); L[k].Insert(ch); } for(i=0;i3;i++) L[i].PrintList(); } 六:实验调试 七:实验心得 实验过程中的主要困难在于如何构建链表,可以考虑定义一个指针数组,形成三个分别存储字母,数字,其他字符的链表,这里采用的是老师ppt里面的定义一个类对象的数组,其实主要部分都差不多,将字符串里面的每个字符进行分类统计,链表里面,没有则创建一个结点来存储,如果有则将count++; 刚开始只是一个劲儿在想啊想的,结果呆呆做了半天只把人纠结了,写的代码就一乱码,所以动手前还是应该现在草稿子上写出基本的方法,入口,就如老师课件上的,把基本流程写下来。 朱柳 —计科1011— 2010117156

文档评论(0)

1亿VIP精品文档

相关文档