数据结构实验一

#include <bits/stdc++.h>

using namespace std;

const int N = 1e5 + 5;

typedef int ElemType;

typedef struct {

ElemType data[N];

int length;

}SeqList;

SeqList L;

int SeqLinit(SeqList L)

{

L.length = 0;

return 1;

}

void SeqLN()

{

for (int i = 1; i <= L.length / 2; i++) {

swap(L.data[i], L.data[L.length - i + 1]);

}

}

int main()

{

int n;

cin >> n;

for (int i = 1; i <= n; i++) {

int x;

cin >> x;

L.data[i] = x;

L.length++;

}

for (int i = 1; i <= n; i++) {

cout << L.data[i] << " ";

}

cout << endl;

SeqLN();

for (int i = 1; i <= n; i++) {

cout << L.data[i] << " ";

}

cout << endl;

return 0;

}

#include <bits/stdc++.h>

using namespace std;

const int N = 1e5;

typedef struct {

int data[N];

int length;

}Seqlist;

Seqlist L;

void Seqinit()

{

L.length = 0;

}

void Seqinsert(int x)

{

L.data[++L.length] = x;

}

int main()

{

int x;

while (cin >> x) {

if (!x) break;

Seqinsert(x);

}

for (int i = 1; i <= L.length; i++) {

cout << L.data[i] << " ";

}

cout << endl;

return 0;

}

#include <bits/stdc++.h>

using namespace std;

const int N = 1e5;

typedef struct {

int data[N];

int length;

}Seqlist;

Seqlist L;

void Seqinit()

{

L.length = 0;

}

void Seqinsert(int x)

{

L.data[++L.length] = x;

}

void Seqinv()

{

for (int i = 1; i <= L.length / 2; i++) {

swap(L.data[i], L.data[L.length - i + 1]);

}

}

int main()

{

int x;

while (cin >> x) {

if (!x) break;

Seqinsert(x);

}

Seqinv();

for (int i = 1; i <= L.length; i++) {

cout << L.data[i] << " ";

}

cout << endl;

return 0;

}

#include <bits/stdc++.h>

using namespace std;

const int N = 1e5;

typedef struct {

int data[N];

int length;

}Seqlist;

Seqlist L;

void Seqinit()

{

L.length = 0;

}

void Seqinsert(int x)

{

L.data[++L.length] = x;

}

void Seqinv()

{

for (int i = 1; i <= L.length / 2; i++) {

swap(L.data[i], L.data[L.length - i + 1]);

}

}

void Seqsort(int x)

{

int i = L.length;

while (x < L.data[i] && i>0) {

L.data[i + 1] = L.data[i];

i--;

}

L.data[++i] = x;

L.length++;

}

int main()

{

Seqinit();

int x;

while (cin >> x) {

if (!x) break;

Seqsort(x);

}

for (int i = 1; i <= L.length; i++) {

cout << L.data[i] << " ";

}

cout << endl;

return 0;

}

#include <iostream>

using namespace std;

typedef struct node {

int data;

struct node* next;

}Lnode, * Linklist;

Linklist H;

void Linit()

{

H = new Lnode;

if (H == NULL) cout << "none" << endl;

H->next = NULL;

}

Linklist Lgreat()

{

Linklist p, r;

r = H;

int x;

while (cin >> x) {

if (x == 0) return H;

p = new Lnode;

p->data = x;

p->next = r->next;

r->next = p;

r = r->next;

}

}

Linklist Ldel()

{

Linklist p, r;

p = H;

while (p->next != NULL) {

if (p->next->data % 2 == 0) {

r = p->next;

p->next = r->next;

delete r;

}

else p = p->next;

}

return H;

}

void Lout()

{

Linklist p;

p = H->next;

while (p != NULL) {

cout << p->data << " ";

p = p->next;

}

cout << endl;

}

int main()

{

Linit();

Lgreat();

Ldel();

Lout();

return 0;

}

#include <iostream>

using namespace std;

typedef struct node {

int data;

struct node* next;

}Lnode,*Linklist;

void init(Linklist& H)

{

H = new Lnode;

if (H == NULL) {

cout << "none" << endl;

return;

}

H->next = NULL;

}

Linklist Lins(Linklist& H)

{

Linklist p, r;

r = H;

int x;

while (cin >> x) {

if (x == 0) return H;

r = H;

while (r->next && r->next->data > x) {

r = r->next;

}

p = new Lnode;

p->data = x;

p->next = r->next;

r->next = p;

}

}

void Lsort(Linklist& la, Linklist& lb)

{

Linklist pa, pb, r, h, q;

int x;

pa = la->next;

pb = lb->next;

h = new Lnode;

h->next = NULL;

q = h;

while (pa != NULL && pb != NULL) {

if (pa->data > pb->data) {

x = pa->data;

pa = pa->next;

}

else {

x = pb->data;

pb = pb->next;

}

r = new Lnode;

r->data = x;

q->next = r;

q = q->next;

}

if (pa != NULL) q->next = pa;

if (pb != NULL) q->next = pb;

la = h;

}

void Lout(Linklist H)

{

Linklist p;

p = H->next;

while (p != NULL) {

cout << p->data << " ";

p = p->next;

}

cout << endl;

}

int main()

{

Linklist la, lb;

init(la);

init(lb);

Lins(la);

Lins(lb);

Lsort(la,lb);

Lout(la);

return 0;

}

#include <iostream>

using namespace std;

typedef struct node {

int data;

struct node* next;

}Lnode, * Linklist;

void init(Linklist& H)

{

H = new Lnode;

if (H == NULL) {

cout << "none" << endl;

return;

}

H->next = NULL;

}

Linklist Linwc(Linklist& H)

{

Linklist p, r;

r = H;

int x;

while (cin >> x) {

if (x == 0) return H;

p = new Lnode;

p->data = x;

p->next = r->next;

r->next = p;

}

}

Linklist Linpaixu(Linklist& H)

{

Linklist p, r;

r = H;

int x;

while (cin >> x) {

if (x == 0) return H;

r = H;

while (r->next && r->next->data > x) {

r = r->next;

}

p = new Lnode;

p->data = x;

p->next = r->next;

r->next = p;

}

}

void Lsort(Linklist& la, Linklist& lb)

{

Linklist pa, pb, r, h, q;

int x;

pa = la->next;

pb = lb->next;

h = new Lnode;

h->next = NULL;

q = h;

while (pa != NULL && pb != NULL) {

if (pa->data > pb->data) {

x = pa->data;

pa = pa->next;

}

else {

x = pb->data;

pb = pb->next;

}

r = new Lnode;

r->data = x;

q->next = r;

q = q->next;

}

if (pa != NULL) q->next = pa;

if (pb != NULL) q->next = pb;

la = h;

}

void Lchai(Linklist& la, Linklist& lb)

{

Linklist p, pb, pa, ra, rb;

p = la->next;

la->next = NULL;

ra = la;

rb = lb;

while (p != NULL) {

if (p->data & 1) {

pa = new Lnode;

pa->data = p->data;

pa->next = ra->next;

ra->next = pa;

}

else {

pb = new Lnode;

pb->data = p->data;

pb->next = rb->next;

rb->next = pb;

}

p = p->next;

}

}

void Lout(Linklist H)

{

Linklist p;

p = H->next;

while (p != NULL) {

cout << p->data << " ";

p = p->next;

}

cout << endl;

}

int main()

{

Linklist la, lb;

init(la);

init(lb);

Linwc(la);

Lchai(la, lb);

Lout(la);

Lout(lb);

return 0;

}

#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>

using namespace std;

typedef struct node {

int cofe, exp;

struct node* next;

}Lnode,*Linklist;

void init(Linklist& H)

{

H = new Lnode;

if (H == NULL) cout << "none" << endl;

H->next = NULL;

}

void Lin(Linklist& H)

{

Linklist p, r;

int n;

cin >> n;

int a, b;

r = H;

while (n--) {

scanf("%d,%d", &a, &b);

p = new Lnode;

p->cofe = a;

p->exp = b;

p->next = r->next;

r->next = p;

r = r->next;

}

}

void Lhb(Linklist& la, Linklist& lb)

{

Linklist pa, pb, r, p, h;

pa = la->next;

pb = lb->next;

h = new Lnode;

h->next = NULL;

r = h;

while (pa != NULL && pb != NULL) {

if (pa->exp == pb->exp) {

if (pa->cofe + pb->cofe == 0) {

pa = pa->next;

pb = pb->next;

}

else {

p = new Lnode;

p->cofe = (pa->cofe + pb->cofe);

p->exp = pa->exp;

p->next = r->next;

r->next = p;

r = r->next;

pa = pa->next;

pb = pb->next;

}

}

else if (pa->exp > pb->exp) {

p = new Lnode;

p->cofe = pb->cofe;

p->exp = pb->exp;

p->next = r->next;

r->next = p;

r = r->next;

pb = pb->next;

}

else {

p = new Lnode;

p->cofe = pa->cofe;

p->exp = pa->exp;

p->next = r->next;

r->next = p;

r = r->next;

pa = pa->next;

}



}

if (pa != NULL) r->next = pa;

if (pb != NULL) r->next = pb;

la = h;

}

void Lout(Linklist H)

{

Linklist p;

p = H->next;

while (p != NULL) {

printf("%d*x^%d ", p->cofe, p->exp);

p = p->next;

}

cout << endl;

}

int main()

{

Linklist la, lb;

init(la);

init(lb);

Lin(la);

Lin(lb);

Lhb(la, lb);

Lout(la);

return 0;

}

#include <iostream>



using namespace std;



typedef struct node {



int data;



struct node* next;



}Lnode, * Linklist;



void init(Linklist& H)



{



H = new Lnode;



if (H == NULL) {



cout << "none" << endl;



return;



}



H->next = NULL;



}



Linklist Lintc(Linklist& H)



{



Linklist p, r;



r = H;



int x;



while (cin >> x) {



if (x == 0) return H;



p = new Lnode;



p->data = x;



p->next = r->next;



r->next = p;



}



}



Linklist Linwc(Linklist& H)



{



Linklist p, r;



r = H;



int x;



while (cin >> x) {



if (x == 0) return H;



p = new Lnode;



p->data = x;



p->next = r->next;



r->next = p;



r = r->next;



}



}



Linklist Linpaixu(Linklist& H)



{



Linklist p, r;



r = H;



int x;



while (cin >> x) {



if (x == 0) return H;



r = H;



while (r->next && r->next->data > x) {



r = r->next;



}



p = new Lnode;



p->data = x;



p->next = r->next;



r->next = p;



}



}



void Lsort(Linklist& la, Linklist& lb)



{



Linklist pa, pb, r, h, q;



int x;



pa = la->next;



pb = lb->next;



h = new Lnode;



h->next = NULL;



q = h;



while (pa != NULL && pb != NULL) {



if (pa->data > pb->data) {



x = pa->data;



pa = pa->next;



}



else {



x = pb->data;



pb = pb->next;



}



r = new Lnode;



r->data = x;



q->next = r;



q = q->next;



}



if (pa != NULL) q->next = pa;



if (pb != NULL) q->next = pb;



la = h;



}



void Lchai(Linklist& la, Linklist& lb)



{



Linklist p, pb, pa, ra, rb;



p = la->next;



la->next = NULL;



ra = la;



rb = lb;



while (p != NULL) {



if (p->data & 1) {



pa = new Lnode;



pa->data = p->data;



pa->next = ra->next;



ra->next = pa;



}



else {



pb = new Lnode;



pb->data = p->data;



pb->next = rb->next;



rb->next = pb;



}



p = p->next;



}



}



void Lhb(Linklist& la, Linklist& lb)



{



Linklist pa, pb, r, h, q;



int x;



pa = la->next;

la->next = NULL;

pb = lb->next;



h = new Lnode;



h->next = NULL;



q = h;



while (pa != NULL && pb != NULL) {



if (pa->data < pb->data) {



x = pa->data;



pa = pa->next;



}



else if (pa->data == pb->data) {



x = pa->data;



pa = pa->next;



pb = pb->next;



}



else {



x = pb->data;



pb = pb->next;



}



r = new Lnode;



r->data = x;



q->next = r;



q = q->next;



}

q->next = NULL;

if (pa != NULL) q->next = pa;

if (pb != NULL) q->next = pb;

la = h;



}



void Lout(Linklist H)



{



Linklist p;



p = H->next;



while (p != NULL) {



cout << p->data << " ";



p = p->next;



}



cout << endl;



}



int main()



{



Linklist la, lb;



init(la);



init(lb);



Linwc(la);



Linwc(lb);



Lhb(la, lb);



Lout(la);



return 0;



}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值