NEFU锐格实验八[链表1-动态节点]
知识点
题目 | 知识点 |
---|---|
5820 | 貌似都不能称之为完整的链表? |
5821 | 尾插法 |
5822 | 头插法 |
5823 | 尾插法,记录长度 |
5824 | 链表数据查找 |
题目
emm直接背就完事了,后面会写总结篇
5820
#include <stdio.h>
#include <stdlib.h>
typedef struct node
{
int data;
struct node * next;
}LNode;
int main()
{
LNode *a,*b,*c,*Head,*D;
int a1,a2,a3,a4;
scanf("%d%d%d%d",&a1,&a2,&a3,&a4);
Head=(LNode *)malloc(sizeof(LNode));Head->next=NULL;//开辟头节点所需空间,并且指向空
a=(LNode *)malloc(sizeof(LNode));a->data=a1;//动态开辟节点,数据域赋值
b=(LNode *)malloc(sizeof(LNode));b->data=a2;
c=(LNode *)malloc(sizeof(LNode));c->data=a3;
D=(LNode *)malloc(sizeof(LNode));D->data=a4;
b->next=D;D->next=c;//把D插入到bc
printf("Head:->%d->%d->%d->%d",a->data,b->data,D->data,c->data);
return 0;
}
5821
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}Lnode;
void CreatList(Lnode * H ,int n)
{
Lnode * p,* r;
int x;
r=H;
for(int i=0;i<n;i++)
{
scanf("%d",&x);
p=(Lnode *)malloc(sizeof (Lnode));
p->data=x;
r->next=p;r=p;
}
r->next=NULL;
}
void PrintList(Lnode * H)
{
Lnode * p;
p=H->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
puts("");
}
int n;
int main()
{
Lnode * H;
while(~scanf("%d",&n))
{
H=(Lnode *)malloc(sizeof (Lnode));H->next=NULL;
CreatList(H,n);
PrintList(H);
}
return 0;
}
5822
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}Lnode;
void CreatList2(Lnode * H ,int n)
{
Lnode * p;
int x;
for(int i=0;i<n;i++)
{
scanf("%d",&x);
p=(Lnode *)malloc(sizeof (Lnode));
p->data=x;
p->next=H->next;
H->next=p;
}
}
void PrintList(Lnode * H)
{
Lnode * p;
p=H->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
puts("");
}
int n;
int main()
{
Lnode * H;
while(~scanf("%d",&n))
{
H=(Lnode *)malloc(sizeof (Lnode));H->next=NULL;
CreatList2(H,n);
PrintList(H);
}
return 0;
}
5823
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node *next;
}Lnode;
int CreatList(Lnode * H)
{
Lnode *p,*r;
r=H;
int res=0;
int x;
while(~scanf("%d",&x)&&x)
{
++res;
p=(Lnode *)malloc(sizeof (Lnode));
p->data=x;
r->next=p;r=p;
}
r->next=NULL;
return res;
}
void PrintList(Lnode * H)
{
Lnode * p;
p=H->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
}
int main()
{
Lnode * H;
H=(Lnode *)malloc(sizeof (Lnode));H->next=NULL;
int len=CreatList(H);
PrintList(H);
printf("\n%d",len);
return 0;
}
5824
#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node * next;
}Lnode;
void CreatList(Lnode * H,int n)
{
Lnode * p,*r;
r=H;
int x;
for(int i=0;i<n;i++)
{
scanf("%d",&x);
p=(Lnode *)malloc(sizeof (Lnode));
p->data=x;
r->next=p;r=p;
}
r->next=NULL;
}
void PrintList(Lnode * H)
{
Lnode * p;
p=H->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
}
void SearchList(Lnode * H ,int x)
{
Lnode * p;
int idx=0;
p=H->next;
while(p!=NULL&&p->data!=x)
{
++idx;
p=p->next;
}
if(p!=NULL)printf("%d %d",idx+1,p->data);
else printf("0");
}
int main()
{
Lnode * H;
int n,x;
scanf("%d",&n);
H=(Lnode *)malloc(sizeof(Lnode));H->next=NULL;
CreatList(H,n);
scanf("%d",&x);
SearchList(H,x);
return 0;
}