/*
noj6
*/
#include <stdio.h>
#include <stdlib.h>
typedef struct Node {
char data;
struct Node *pre;
struct Node *next;
int freq;
}ListNode,*LinkList;
void ListInit(LinkList *L){
*L = (ListNode*)malloc(sizeof(ListNode));
(*L)->next = NULL;
(*L)->pre = NULL;
}
void ListCreate(LinkList L,int data_num,char A[]){
ListNode *r = L;
int i;
char data;
for(i=0;i<data_num;i++){
data = A[i];
ListNode *p;
p = (ListNode*)malloc(sizeof(ListNode));
p->freq = 0;
p->data = data;
p->next = r->next;
p->pre = r;
r->next = p;
r = r->next;
}
r->next = L;
L->pre = r;
}
void ListPrint(LinkList L){
ListNode *r = L->next;
while(r!=L){
printf("%c ",r->data);
r = r->next;
}
//printf("\n");
}
void ListPrintF(LinkList L){
ListNode *r = L->next;
while(r!=L){
printf("%d ",r->freq);
r = r->next;
}
printf("\n");
}
void sort(LinkList L,int num){
ListNode *r = L->next;
ListNode *t;
int i,j;
for(i=0;i<num;i++){
r = L->next;
for(j=0;j<num;j++){
if(r->next==L) break;
if(r->freq<r->next->freq){
t = r->next;
r->next = t->next;
t->next->pre = r;
t->pre = r->pre;
r->pre->next = t;
r->pre = t;
t->next = r;
}
r = r->next;
}
}
}
void option(LinkList L,char C[],int num_fang){
int i=0;
ListNode *r = L->next;
while(i<num_fang){
while(r!=L){
if(r->data != C[i]){
r = r->next;
}
else{
r->freq++;
break;
}
}
r = L->next;
i++;
}
}
int main(){
char A[1000];
char C[1000];
char B[1];
int num,fang_num,i;
scanf("%d %d",&num,&fang_num);
C[0] = getchar();//吸收回车键
for(i=0;i<num;i++){
A[i] = getchar();
B[0] = getchar();
}
for(i=0;i<fang_num;i++){
C[i] = getchar();
B[0] = getchar();
}
/*
for(i=0;i<num;i++){
printf("%c ",A[i]);
}
printf("\n");
for(i=0;i<fang_num;i++){
printf("%c ",C[i]);
}
printf("\n-----------\n");
*/
LinkList L1;
ListInit(&L1);
ListCreate(L1,num,A);
option(L1,C,fang_num);
sort(L1,num);
ListPrint(L1);
//ListPrintF(L1);
return 0;
}
西北工业大学数据结构noj_1-6题
需积分: 50 7 浏览量
2021-04-27
00:49:13
上传
评论 2
收藏 2KB 7Z 举报
小菜Doggy
- 粉丝: 22
- 资源: 2
最新资源
- JavaScript《基于自动分析数据并给出营业建议的餐厅管理系统(接入AI) 》+源代码+项目说明及资料
- 355670834783295707ad04e-427f-4cde-9589-e578224a8459.zip
- 动态sql解析引擎,类似mybatis动态sql的功能
- EDA365-Skill-V2.5安装包,支持Allegro17.x版本
- C# 常用单词汇总,常用单词汇总
- 【ERP标准流程-标准流程-库内业务管理】(DOC 14页).doc
- Python《数据库期末作业-餐厅点单系统 》+源代码+设计资料
- 学生成绩管理系统(C++课程设计
- 双指针法判断链表有环-go语言实现
- MyBatis动态SQL是一种强大的特性,它允许我们在SQL语句中根据条件动态地添加或删除某些部分,从而实现更加灵活和高效的数据
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0