回 帖 发 新 帖 刷新版面

主题:马上要交作业了,题目不知道做,求帮助

描述


今天同来面试的,还有Mr.true
Mr.true是一位高中大学都搞竞赛的小超人,而MS也很需要这样的人才。
于是,不用说,他去面试的时候会得到一点点小特权,那就是他可以少排一会队———漂亮的人力资源MM会给他安排一个靠前的位置。


输入

第一行为一个整数T,表示有T组数据。
每组数据有3行:
第一行为原队伍已有的人数N;
第二行有n个以空格隔开的整数表示原队伍面试编号序列;
第三行为两个整数P、Q,P表示Mr.true拿到的面试编号,Q表示Mr.true将插入队伍中的第Q个位置。
保证没有相同号码,保证N不大于10000

输出

插入后队伍面试编号的情况。

样例输入


2
3
1 2 3
4 2
4
9 8 2 3
7 1

样例输出


1 4 2 3
7 9 8 2 3




陪同Mr.true&&Eddy一同去面试的还有DavidDeng。
DavidDeng信心满满的去微软面试,一群面试者排起了长长的队伍,每个人有张面试编号。
这时,一位大美女KZ从他身边走过,DavidDeng对其一见钟情,DavidDeng拿起他的面试编号N就离开了面试队伍。 

输入

第一行为一个整数T,表示有T组数据。
每组数据有三行:
第一行是一个整数M ,表示原队伍有M个人;
第2行有M个以空格隔开的整数,即原队伍中每个人的面试编号;
第三行为DavidDeng的面试编号N。
保证没有相同号码,保证N不大于10000

输出

DavidDeng离开后队伍的面试编号序列。

样例输入


1
4
1 3 8 2
3

样例输出


1 8 2


这两题,一题用顺序,一题用单链表,很急啊,哪位大神帮帮忙吧

回复列表 (共3个回复)

沙发

如果真的只是应付交作业,那直接和老师说 “我不想做作业”,老师应该会通融的吧。

板凳

两题都给你写了,也不去注意代码,注释什么的了,觉得你也用不上,还有要告诉你,如果只是应付的话,只用考试过了就好了,不用太费心平时作业。学分拿到就好了,以后希望别到这发作业贴了,大家不会花时间帮你的,即使你再急。。。
[code=c]
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define N 10000

typedef struct OrderList
{
    int ele[N];
    int len;
} *OList;

void insert(OList arlist, int t_num, int loc);

int main(int argc, char *argv[])
{

    int date_num, line_num, exsit_ps, t_num, loc, i, ct;
    OList ar_list = NULL;
        
    if(scanf("%d", &date_num) && date_num >= N)
    {
        fprintf(stderr, "date_num can't be greater than 10000\n");
        exit(EXIT_FAILURE);
    }
    else 
    {
        ar_list = (OList )malloc(sizeof(struct OrderList));
        memset(ar_list->ele, 0, N * sizeof(int ));
        for(ct = 0; ct < date_num; ct++)
        {
            scanf("%d", &exsit_ps);
            ar_list->len = exsit_ps;
            for(i = 0; i < exsit_ps; i++)
            {
                scanf("%d", &ar_list->ele[i]);
            }
            scanf("%d%d", &t_num, &loc);
            insert(ar_list, t_num, loc);
            
            for(i = 0; i < ar_list->len; i++)
            {
                printf("%d ", ar_list->ele[i]);
            }
            putchar('\n');
        }
        free(ar_list);
    }
    return 0;
}

void insert(OList ar_list, int t_num, int loc)
{
    int i;
    if(loc >= ar_list->len)
    {
        ar_list->ele[ar_list->len] = t_num;
    }
    else
    {
        for(i = ar_list->len; i >= loc; i--)
        {
            ar_list->ele[i] = ar_list->ele[i - 1];                
        }
        ar_list->ele[i] = t_num; 
        ar_list->len++;
    }
}
[/code]

3 楼

[code=c]
#include <stdio.h>
#include <stdlib.h>

typedef struct LinkList
{
    int data;
    struct LinkList *next; 
}*List;

List init_list(int num);
List del_ele(List link_list, int del_num);
void print_list(List link_list);
void del_list(List link_list);

int main(int argc, char *argv[])
{
    int ct, num, i, del_num;
    List link_list; 
    
    while(1)
    {
        scanf("%d", &ct);
        if(ct > 0)
        {
            break;
        }
        else
        {
            fprintf(stderr, "data_num must be greater than 0!\n");
        }
    }
    
    for(i = 0; i < ct; i++)
    {        
        scanf("%d", &num);
        link_list = init_list(num);
        
        scanf("%d", &del_num);
        link_list = del_ele(link_list, del_num);
        
        print_list(link_list);
        del_list(link_list);
    }    
    return 0;
}

List init_list(int num)
{
    
    List link_list, p, q;
    int  e;
        
    p = link_list = (List )malloc(sizeof(struct LinkList));
    link_list->data = num ;
    link_list->next = NULL;
        
    while(num > 0)
    {
        scanf("%d", &e);
        q = (List )malloc(sizeof(struct LinkList));
        q->data = e;
        p->next = q;
        p = q;
        num--;            
    }
    q->next = NULL;
    
    return link_list;
}

List del_ele(List link_list, int del_num)
{
    int i;
    List p, q;
    
    p = link_list->next;
    q = link_list;
    
    for(i = 0; i < link_list->data; i++)
    {
        if(p->data == del_num)    
        {
            break;
        }         
        else
        {
            q = p;
            p = p->next;
        }    
    }    
    
    q->next = p->next;
    free(p);

    return link_list;
}

void print_list(List link_list)
{
    List temp = link_list->next;
    
    while(temp != NULL)
    {
        printf("%d ", temp->data);
        temp = temp->next;
    }
}

void del_list(List link_list)
{
    List temp = NULL;
    
    while(link_list != NULL)
    {
        temp = link_list->next;
        free(link_list);
        link_list = temp;
    }
}
[/code]

我来回复

您尚未登录,请登录后再回复。点此登录或注册