好久沒寫都快忘光惹 @_@。
/* ACM 484 The Department of Redundancy Department
* mythnc
* 2011/11/20 14:10:46
* run time: 0.480
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct number {
int name;
int count;
struct number *next;
} Number;
Number *addnumber(int, Number *);
void print(Number *);
void freenumber(Number *);
int main(void)
{
Number *root;
int n;
root = NULL;
while (scanf("%d", &n) == 1)
root = addnumber(n, root);
print(root);
freenumber(root);
return 0;
}
/* addnumber: add number in p */
Number *addnumber(int n, Number *p)
{
if (p == NULL) {
p = (Number *)malloc(sizeof(Number));
p->name = n;
p->count = 1;
p->next = NULL;
}
else if (p->name == n)
p->count++;
else
p->next = addnumber(n, p->next);
return p;
}
/* print: print p */
void print(Number *p)
{
while (p != NULL) {
printf("%d %d\n", p->name, p->count);
p = p->next;
}
}
/* freenumber: free p */
void freenumber(Number *p)
{
Number *tmp;
while (p != NULL) {
tmp = p;
free(tmp);
p = p->next;
}
}
沒有留言:
張貼留言