단일 체인 시트 의 생 성, 증가, 삭제, 삭제 작업
8486 단어 데이터 구조
#include
#include
typedef struct Node
{
int data;
struct Node *next;
}Node;
Node *CreatebyTail();// ,
Node *CreatebyHead();// ,
void Print(Node *head);//
Node *Insert(Node *head,int num);// num
Node *Delete(Node *head,int num);// num
void Clear(Node *head);//
int main()
{
Node *head;
int m,n;
head=CreatebyTail();
//head=CreatebyHead();
Print(head);
printf(" :
");
scanf("%d",&n);
head=Insert(head,n);
printf(" ,");
Print(head);
printf(" :
");
scanf("%d",&m);
head=Delete(head,m);
printf(" ,");
Print(head);
Clear(head);
return 0;
}
Node *CreatebyTail()// ,
{
Node *head,*tail,*p;
int num;
head=tail=NULL;
printf(" -10000 :
");
scanf("%d",&num);
while(num!=-10000)
{
p=(Node*)malloc(sizeof(Node));
p->data = num;
p->next = NULL;
if(head==NULL)//
{
head=p;
}
else//
{
tail->next=p;
}
tail=p;
scanf("%d" , &num);
}
return head;
}
Node *CreatebyHead()// ,
{ Node *head,*p;
int num;
head=(Node*)malloc(sizeof(Node));
head->next=NULL;
printf(" -10000 :
");
scanf("%d",&num);
while(num!=-10000)
{
p=(Node*)malloc(sizeof(Node));
p->data=num;
p->next=head->next;
head->next=p;
scanf("%d",&num);
}
return head;
}
void Print(Node *head)//
{
Node *p;
p=head;//
//p=head->next;//
if(head==NULL)
{
printf(" !
");
}
else
{
printf(" :
");
while(p != NULL)
{
printf("%4d",p->data);// 4 ,
p=p->next;
}
}
printf("
");
}
Node *Delete(Node *head,int num)// num
{
Node *p1,*p2;
if(head==NULL)
{
printf(" !
");
return head;
}
p1=head;
while( p1->next && p1->data != num )// p1 , num
{
p2=p1;//p2 p1
p1=p1->next;
}
if( p1->data == num )// p1 num
{
if( head == p1 )// p1
{
head=p1->next;
}
else
{
p2->next=p1->next;
}
free(p1);
printf(" !
");
}
else
{
printf(" !
");
}
return head;
}
Node *Insert(Node *head,int num)// num
{
Node *p,*p1,*p2;
p=(Node*)malloc(sizeof(Node));
p->data=num;
p->next=NULL;
p1=head;
while(p1)//p1
{
p2=p1;
p1=p1->next;
}
if(p1 == head)
{
head=p;
}
else
{
p2->next=p;
}
p->next=p1;
printf(" !
");
return head;
}
void Clear(Node *head)//
{
Node *p=head;
while(head)
{
p=head->next;
free(head);
head=p;
}
printf(" !
");
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.