[NEFU锐格】 数据结构 实验一

1.8559

#include <stdio.h>
int main()
{
    int n;
    int x;
    scanf("%d",&n);
    int a[1000];
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&a[i]);
        printf("%d ",a[i]);
    }
    printf("\n");
     for(int i=1;i<=n/2;i++)
     {
         x=a[i];
         a[i]=a[n-i+1];
         a[n-i+1]=x;
     }
     for(int i=1;i<=n;i++)
     {
         printf("%d ",a[i]);
     }
     return 0;
}

2.8553

#include <stdio.h>
#include <stdlib.h>
typedef struct node{
    int data;
    struct node *next;
}LNode;
int main()
{
    LNode *h,*r;
    h=(LNode *)malloc(sizeof(LNode));
    h->next=NULL;
    r=h;
     int n;
    while(scanf("%d",&n))
    {
        if(n==0) break;
        LNode *p;
        p=(LNode *)malloc(sizeof(LNode));
        p->data=n;
        p->next=r->next;
        r->next=p;
        r=p;
    }
    LNode *p;
    p=h->next;
    while(p!=NULL){
        printf("%d ",p->data);
        p=p->next;
    }
    return 0;
}

3.8554

#include <bits/stdc++.h>
using namespace std;
typedef struct node{
    int data;
    struct node *next;
}LNode,*LList;
void CREAT(LNode* &h){
    LList p,r;
    h=(LNode *)malloc(sizeof(LNode));
    h->next=NULL;
    r=h;
    int n;
    while(cin>>n){
        if(n==0) break;
        p=(LNode *)malloc(sizeof(LNode));
        p->data=n;
        p->next=r->next;
        r->next=p;
        r=p;
    }
}
void NIZHI(LNode* &h){
    LList p,q;
    p=h->next;
    h->next=NULL;
    while(p!=NULL){
        q=p;
        p=p->next;
        q->next=h->next;
        h->next=q;
    }
}
void PRINT(LNode *h){
    LList p;
    p=h->next;
    while(p!=NULL){
        cout<<p->data<<' ';
        p=p->next;
    }
}
int main()
{
       LList h;
       CREAT(h);
       NIZHI(h);
       PRINT(h);
       return 0; 
}

4.8555

#include <bits/stdc++.h>
using namespace std;
typedef struct node{
    int data;
    struct node *next;
}LNode;
void creat(LNode* &h){
    int n;
    LNode *p,*q,*pre;
    h=(LNode *)malloc(sizeof(LNode));
    h->next=NULL;
    while(cin>>n){
        if(n==0) break;
        p=(LNode *)malloc(sizeof(LNode));
        p->data=n;
        pre=h;
        q=h->next;
        while(q&&q->data<p->data){
            pre=q;
            q=q->next;
        }
        p->next=q;
        pre->next=p;
    }
}
void PRINT(LNode *h){
    LNode *p;
    p=h->next;
    while(p){
        cout<<p->data<<' ';
        p=p->next;
    }
}
int main()
{
    int n;
    LNode *h;
    creat(h);
    PRINT(h);
    return 0;                                                                               
}

5.8556

#include <bits/stdc++.h>
using namespace std;
typedef struct node{
    int data;
    struct node *next;
}LNode;
void creat(LNode* &h){
    h=(LNode *)malloc(sizeof(LNode));
    h->next=NULL;
    LNode *r;
    r=h;
    int n;
    while(cin>>n){
        if(n==0) break;
        LNode *p;
        p=(LNode *)malloc(sizeof(LNode));
        p->data=n;
        p->next=r->next;
        r->next=p;
        r=p;
    }
}
void DELETE(LNode* &h){
    LNode *p,*pre;
    p=h->next;
    pre=h;
    while(p!=NULL){
        if((p->data)%2==0) {pre->next=pre->next->next; p=p->next;}
       else{ pre=p;
        p=p->next;}
    }
}
void print(LNode *h){
    LNode *p;
    p=h->next;
    while(p!=NULL){
        cout<<p->data<<' ';
        p=p->next;
    }
}
int main(){
    LNode *h;
    creat(h);
    DELETE(h);
    print(h);
    return 0;
}

6.8557

#include <bits/stdc++.h>
using namespace std;
typedef struct node{
    int data;
    struct node *next;
}LNode;
void creat(LNode* &h){
    int n;
    LNode *p,*q,*pre;
    h=(LNode *)malloc(sizeof(LNode));
    h->next=NULL;
    while(cin>>n)
    {
        if(n==0) break;
        p=(LNode *)malloc(sizeof(LNode));
        p->data=n;
        pre=h;
        q=h->next;
        while(q&&q->data<p->data){
            pre=q;
            q=q->next;
        }
        p->next=q;
        pre->next=p;
    }
    
}
void PRINT(LNode *h){
    LNode *p;
    p=h->next;
    while(p!=NULL){
        cout<<p->data<<' ';
        p=p->next;
    }
}
void ADD(LNode* &a,LNode* &b){
    LNode *p1,*p2,*p3,*p;
    p1=a->next;
    p2=b->next;
    p3=a;
    while(p1&&p2){
        if(p1->data<p2->data){
           p3->next=p1;
           p3=p1;
           p1=p1->next;
        }
        else if(p1->data>p2->data){
            p3->next=p2;
            p3=p2;
            p2=p2->next;
        }
        else if(p1->data==p2->data){
            p3->next=p1;
            p3=p1;
            p1=p1->next;
        }
        p3->next=p1?p1:p2;
    }
}
void REVERSE(LNode* &h){
    LNode *p,*q;
    p=h->next;
    h->next=NULL;
    while(p){
        q=p;
        p=p->next;
        q->next=h->next;
        h->next=q;
    }
}
int main()
{
    LNode *h,*m;
    creat(h);
    creat(m);
    ADD(h,m);
    REVERSE(h);
    PRINT(h);
    return 0;
}

7.8558

#include <bits/stdc++.h>
using namespace std;
typedef struct node{
    int data;
    struct node *next;
}LNode;
void creat(LNode* &h){
    h=(LNode *)malloc(sizeof(LNode));
    h->next=NULL;
    LNode *r,*p;
    r=h;
    int n;
    while(cin>>n){
        if(n==0) break;
        p=(LNode *)malloc(sizeof(LNode));
        p->data=n;
        p->next=r->next;
        r->next=p;
        r=p;
    }
}
void sep1(LNode* &h){
    LNode *p;
    p=h->next;
    while(p){
        if((p->data)%2!=0) cout<<p->data<<' ';
        p=p->next;
    }
}
void sep2(LNode *h){
    LNode *p;
    p=h->next;
    while(p){
        if((p->data)%2==0) cout<<p->data<<' ';
        p=p->next;
    }
}
int main()
{
    LNode *h;
    creat(h);
    sep1(h);
    cout<<endl;
    sep2(h);
    return 0;
}

8.8560

#include <bits/stdc++.h>
using namespace std;
typedef struct node{
    int x;
    int z;
    struct node *next;
}LNode;
void creat(LNode* &h,int n){
    LNode *q,*pre;
    h=(LNode *)malloc(sizeof(LNode));
    h->next=NULL;
    for(int i=1;i<=n;i++){
        LNode *p;
        p=(LNode *)malloc(sizeof(LNode));
        scanf("%d,%d",&p->x,&p->z);
        pre=h;
        q=h->next;
        while(q!=NULL&&q->z<p->z){
            pre=q;
            q=q->next;
        }
        p->next=q;
        pre->next=p;
    }
}
void ADD(LNode* &a,LNode* &b){
    LNode *p1,*p2,*p3;
    int sum;
    p1=a->next;
    p2=b->next;
    p3=a;
    while(p1&&p2){
        if(p1->z==p2->z){
            sum=p1->x+p2->x;
            if(sum!=0){
                p1->x=sum;
                p3->next=p1;
                p3=p1;
                p1=p1->next;
                p2=p2->next;
            }
            else {
                p1=p1->next;
                p2=p2->next;
            }
        }
        else if(p1->z<p2->z){
            p3->next=p1;
            p3=p1;
            p1=p1->next;
        }
        else{
            p3->next=p2;
            p3=p2;
            p2=p2->next;
        }
    }
    p3->next=p1?p1:p2;
    
}
void print(LNode *h){
    LNode *p;
    p=h->next;
    while(p){
        printf("%d*x^%d ",p->x,p->z);
        p=p->next;
    }
}
int main(){
    LNode *h,*j;
    int n,m;
    cin>>n;
    creat(h,n);
    cin>>m;
    creat(j,m);
    ADD(h,j);
    print(h);
    return 0;
}

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值