데이터 구조 싱글 체인 시트 삽입 삭제 작업 (c 언어 구현)
#include "stdlib.h"
#include "stdio.h"
typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
void Create_List(LinkList &L){
int data;
LinkList p,q;
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
q=L;
scanf("%d",&data);
while(data!=0){
p=(LinkList)malloc(sizeof(LNode));
p->data=data;
p->next=q->next;
q->next=p;
q=p;
scanf("%d",&data);
}
q=L;
}
void TranverseList(LinkList L){
LinkList p;
p=L->next;
if(p==NULL){
printf("null
");
return;
}
while(p!=NULL){
printf("%d,",p->data);
p=p->next;
}
printf("
");
}
void ListDelet(LinkList &L,int delElem){
LinkList p,temp;
p=L;
int tag=0;
while(p->next!=NULL){
if(p->next->data==delElem){
temp=p;
tag=1;
break;
}
p=p->next;
}
if(tag==0){
return ;
}
if(temp->next->next==NULL&&tag==1){
temp->next=NULL;
}else if(tag==1){
temp->next=p->next->next;
}
}
void Insert(LinkList &L,int elem){
LinkList p;
LinkList s;
p=L;
s=(LinkList)malloc(sizeof(LNode));
s->data=elem;
s->next=NULL;
while(p->next!=NULL){
if(p->next->data==elem) break;
if(p->next->data>elem){
s->next=p->next;
p->next=s;
break;
}
p=p->next;
}
if(p->next==NULL&&p->data<elem){
p->next=s;
}
}
int main(){
LinkList L;
Create_List(L);
printf(" :");
TranverseList(L);
Insert(L,4);
Insert(L,1);
Insert(L,10);
Insert(L,3);
printf(" 4,1,10,3 :");
TranverseList(L);
ListDelet(L,5);
ListDelet(L,1);
ListDelet(L,10);
ListDelet(L,8);
printf(" 5,1,10,8 :");
TranverseList(L);
Insert(L,4);
printf(" 4 :");
TranverseList(L);
ListDelet(L,2);
printf(" 2 :");
TranverseList(L);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.