您的位置:首页 > 运维架构

The operation on charactor string to compress the same alphabets

2015-01-07 17:54 281 查看
Objective

input abacacdekb , output 3a 2b 2c 1d 1e 1k

Procesure

#include<stdio.h>
#include<stdlib.h>
char a[]={'a','b','a','c','a','c','d','e','k','b'};
typedef char key_type;
typedef struct node{
key_type key;
struct node *next;
int count;
}node, *pnode;

void insert(pnode *root, key_type key)
{
pnode p = (pnode)malloc(sizeof(node));

p->key = key;
p->next = NULL;
p->count = 1;

if( (*root) == NULL)
{
( *root ) = p;

return ;
}
insert(&(*root)->next,key);
}
int find(pnode root, key_type key)
{

if( root ==NULL )
return 0;

while( root && key != root->key)
{
root =root->next;
}
if( root == NULL)
return 0;
if( key == root->key)
{
(root->count) = (root->count)+1;
return 1 ;
}

}
void read(pnode *root )
{
pnode temp =(*root);
while(temp)
{
printf("%d%c ",temp->count,temp->key);
temp = temp->next;
}
}
void main()
{
int i;
pnode root = NULL ;
for(i=0;i<10;i++)
{
if( find( root , a[i] ) == 0 )
insert(&root,a[i]);
else
continue;
}
read(&root);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐