M1

  1. 请实现单词表的管理。应该包含的功能有单词表的初始化,增加一条单词 ,删除一条单词,单词表信息输出等功能。(用面向对象的方式实现)
    单词表包含的信息有(编号 ,单词,词频,含义)如:
    1,concern,12.5,”n.关心,关切的事|v.涉及,与…有关”
    2,insight,8,n.洞察力
    3,absent,7,a.缺席的|vt.使缺席
    4,influence,6,”v.影响,感化|n.影响力,势力”
    假设这些记录存放在文件里面
    请 实现:
    n 请利用list数据结构,实现对单词表的顺序查找。
    n 需要按照要求建立Record类,Key类等
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define NULL 0

typedef struct LNode
{
    int no;
    char str[100];
    int f;
    char m[100];
    struct LNode *next;
}LNode,*lnode;


void createList(lnode &l,int n)
{
    lnode p,q;
    l=(lnode)malloc(sizeof(LNode));
    p=l;
    for(int i=0;i<n;i++)
    {
        q=(lnode)malloc(sizeof(LNode));
        scanf("%d%s%d%s",&q->no,q->str,&q->f,q->m);
        p->next=q;
        p=q;
    }
    p->next=NULL;
}

void printList(lnode l)
{
    lnode p;
    p=l->next;
    while(p!=NULL)
    {
        printf("no=%d,str=%s,fre=%d,meaning=%s\n",p->no,p->str,p->f,p->m);
        p=p->next;
    }
}

void insert(lnode &l,int no)    //no为插入单词的数量
{
    lnode p,q;
    p=l;
    while(p->next!=NULL)p=p->next;
    for(int i=0;i<no;i++)
    {
        q=(lnode)malloc(sizeof(LNode));
        scanf("%d%s%d%s",&q->no,q->str,&q->f,q->m);
        q->next=NULL;
        p->next=q;
        p=p->next;
    }
}

void del(lnode &l,char str[])
{
    int i,j;
    lnode p,pre,q;
    p=l->next;
    pre=l;
    while(p!=NULL)
    {
        if(strcmp(p->str,str)==0)
            break;
        pre=p;
        p=p->next;
    }
    q=p;
    pre->next=p->next;
    p=p->next;
    free(q);
}

void search(lnode &l,char str[])
{
    lnode p,q;
    int i;
    p=l->next;
    while(p!=NULL)
    {
        if(strcmp(str,p->str)==0)
            break;
        p=p->next;
    }
    if(p!=NULL)
        printf("查找结果:\nno=%d,str=%s,fre=%d,meaning=%s\n",p->no,p->str,p->f,p->m);
    else
        printf("查找失败!");
}

int main()
{
    lnode l;
    int n,no;
    char str[100],s[100];
    scanf("%d",&n);
    createList(l,n);
    printf("初试数据:\n");
    printList(l);
    printf("输入你想插入单词的个数:");
    scanf("%d",&no);
    insert(l,no);
    printf("插入后的数据:\n");
    printList(l);
    printf("需要删除的单词:");
    scanf("%s",str);
    del(l,str);
    printf("删除后的数据:\n");
    printList(l);
    printf("输入你想查找的数据:");
    scanf("%s",s);
    search(l,s);
    return 0;
}


你可能感兴趣的:(链表)