nefu瑞格循环链表和双向链表
–题目来源-nefu瑞格
4330
#include <stdio.h>
#include <malloc.h>
typedef struct Node
{
int data;
struct Node *rLink;
struct Node *lLink;
}Node;
Node *first;
Node *rear;
void DList()
{
first = (struct Node *)malloc(sizeof(struct Node));
rear = first;
rear->rLink = first;
first->lLink = rear;
}
void Insert(int val)
{
Node *n = (struct Node *)malloc(sizeof(struct Node));
n->data = val;
n->rLink = rear->rLink;
n->lLink = rear;
rear->rLink->lLink = n;
rear->rLink = n;
rear = rear->rLink;
}
void outputByRLink()
{
Node *t = first->rLink;
while (t!=first)
{
printf("%d ", t->data);
t = t->rLink;
}
printf("\n");
}
// 修改双向链表
void changeLink()
{
// write your code here
Node *p,*q,*f;
p=first->rLink;
q=p->rLink;
f=first;
while(p!=rear&&p!=rear->lLink)
{
p->rLink=q->rLink;
q->rLink->lLink=p;
rear->rLink=q;
f->lLink=q;
q->rLink=f;
q->lLink=rear;
f=q;
p=p->rLink;
q=p->rLink;
}
rear=first->lLink;
}
int main()
{
DList();
int val;
scanf("%d", &val);
while (val != -1)
{
Insert(val);
scanf("%d", &val);
}
changeLink();
outputByRLink();
return 0;
}
4894
B
4326
B
4861–没找到规律
#include<stdio.h>
#define maxsize 10000
typedef struct
{
int data[maxsize];
int length;
}SqList;
//初始化顺序表
void InitList(SqList &L)
{
int i , n , temp;
scanf("%d",&n);
L.length = 0;
for(i = 1; i <= n ; ++i)
{
scanf("%d",&temp);
L.data[i] = temp;
L.length++;
}
}
void print(SqList L)
{
int i;
for(i = 1 ; i <= L.length ; ++i )
{
printf("%d ",L.data[i]);
}
}
void move(SqList &L)
{
int i,t,s,j;
t=L.data[1];
for(i=2;i<=L.length;i++)
{
if(L.data[i]<t)
{
s=L.data[i];
for(j=i;j>1;j--)
{
L.data[j]=L.data[j-1];
}
L.data[1]=s;
}
}
/*t=L.data[4];
L.data[4]=L.data[5];
L.data[5]=t;*/
}
int main()
{
SqList L;
InitList(L);
print(L);
printf("\n");
move(L); //需要写的函数
print(L);
return 0;
}
input
6 7 1 9 2
output
2 1 6 9 7
2.
input
8 7 11 1 6
output
6 7 1 8 11
4860
#include<stdio.h>
#define maxsize 10000
typedef struct
{
int data[maxsize];
int length;
}SqList;
//初始化顺序表
void InitList(SqList &L,int n)
{
int i , e;
L.length = 0;
for(i = 1; i <= n ; ++i)
{
scanf("%d",&e);
L.data[i] = e;
L.length++;
}
}
void print(SqList L)
{
int i;
for(i = 1 ; i <= L.length ; ++i )
{
printf("%d ",L.data[i]);
}
}
void insert (SqList &L,int x)
{
int i,j;
for(i=1;i<=L.length;i++)
{
if(x<L.data[i])
break;
}
for(j=L.length+1;j>i;j--)
{
L.data[j]=L.data[j-1];
}
L.data[i]=x;
L.length++;
}
int main()
{
int x , n;
SqList L;
scanf("%d",&n);
InitList(L,n);
scanf("%d",&x);
print(L);
printf("\n");
insert(L,x); //要写的函数
print(L);
printf("\n");
return 0;
}
4859–瑞格没过
#include<stdio.h>
#define maxsize 10000
typedef struct
{
int data[maxsize];
int length;
}SqList;
//初始化顺序表
void InitList(SqList &L,int n)
{
int i , e;
L.length = 0;
for(i = 1; i <= n ; ++i)
{
scanf("%d",&e);
L.data[i] = e;
L.length++;
}
}
void print(SqList L)
{
int i;
for(i = 1 ; i <= L.length ; ++i )
{
printf("%d ",L.data[i]);
}
}
void Delete(SqList &L,int x,int y)
{
int i,j;
for(i=1;i<=L.length;i++)
{
if(L.data[i]>=x&&L.data[i]<=y)
{
for(j=i;j<L.length;j++)
{
L.data[j]=L.data[j+1];
}
i--;
L.length--;
}
}
}
int main()
{
int n , left ,right;
SqList L;
scanf("%d",&n);
InitList(L,n);
scanf("%d",&left);
scanf("%d",&right);
print(L); //要写的函数
printf("\n");
Delete(L,left,right); //要写的函数
print(L);
printf("\n");
return 0;
}
4858
#include<stdio.h>
#define maxsize 10000
typedef struct
{
int data[maxsize];
int length;
}SqList;
//初始化顺序表
void InitList(SqList &L,int n)
{
int i , e;
L.length = 0;
for(i = 1; i <= n ; ++i)
{
scanf("%d",&e);
L.data[i] = e;
L.length++;
}
}
void print(SqList L)
{
int i;
for(i = 1 ; i <= L.length ; ++i )
{
printf("%d ",L.data[i]);
}
}
void reverse(SqList &L,int n)
{
int i;
int b[maxsize];
for(i = 1 ; i <= L.length ; ++i )
{
b[L.length-i+1]=L.data[i];
}
for(i = 1 ; i <= L.length ; ++i )
{
L.data[i]=b[i];
}
}
int main()
{
//write your codes
int n;
SqList L;
scanf("%d",&n);
InitList(L,n);
print(L);
printf("\n");
reverse(L,n);
print(L);
return 0;
}
4857
#include<stdio.h>
#define maxsize 10000
typedef struct
{
int data[maxsize];
int length;
}SqList;
void print(SqList L)
{
int i;
for(i = 1 ; i <= L.length ; ++i )
{
printf("%d ",L.data[i]);
}
}
int main()
{
int i , e;
SqList L;
L.length = 0;
for(i = 1; i <= 10 ; ++i)
{
L.data[i] = i;
L.length++;
}
print(L);
//write your own codes
return 0;
}