c 언어 순환 단일 체인 테이블 실현
//
Node*InitList()
{
Node*head=(Node*)malloc(sizeof(Node));
head->next=NULL;
head->data=-1;
return head;
}
데이터 추가
void Add(Node*s)
{
Node*p=s;
int n;
printf(" :");
scanf("%d",&n);
printf(" %d :",n);
for(int i=1;i<=n;i++)
{
Node*q=(Node*)malloc(sizeof(Node));
scanf("%d",&q->data);
p->next=q;
p=q;
}
p->next=s;
}
삭제 작업
void Delete(Node*s)
{
int a;
printf(" :");
scanf("%d",&a);
Node*p=s->next;
int flag=0;
Node*q=s;
while(p!=s)
{
if(p->data==a)
{
q->next=p->next;
free(p);
flag=1;
break;
}
p=p->next;
q=q->next;
}
}
삽입 조작
void Insert(Node*s)
{
int a;
int flag=0;
Node*q=(Node*)malloc(sizeof(Node));
printf(" :");
scanf("%d",&q->data);
printf(" :");
scanf("%d",&a);
Node*p=s->next;
while(p!=s)
{
if(p->data==a)
{
q->next=p->next;
p->next=q;
flag=1;
break;
}
p=p->next;
}
if(flag==1)
printf(" !");
else
printf(" !");
}
//
/*
void Insert(Node*s)
{
Node*q=(Node*)malloc(sizeof(Node));
printf(" :");
scanf("%d",&q->data);
q->next=s->next;
s->next=q;
} */
디 스 플레이 동작
void Display(Node*s)
{
Node*v=s->next;
while(v!=s)
{
printf("%d->",v->data);
v=v->next;
}
}
비우 기 동작
void Empty(Node*s)
{
Node*p=s->next;
Node*q=p->next;
while(p!=s)
{
free(p);
p=q;
q=q->next;
}
free(s);
}
원래 코드 는 다음 과 같 습 니 다 \ # include \ # include typedef struct Node {int data; struct Nodenext;} Node; /NodeInitList () {Nodehead = (Node) malloc (sizeof (Node)); head - > next= NULL; hea- - - > data = - 1; rethead;} void Add (Nodes) {Nodep= s; int n; printf ("몇 데 이 터 를 입력 할 것:"); scanf ("% d", & n); printf ("% d 데 데 데 이 터 를 입력 하 십시오:", n); for (int i = 1; i < = n; i + + +) {Nodeq = (Node) malloc ((Node) (Node (((sisizeof (Node)))) (Node다음 다음 데 데 데 데 이 터 를 초기 초기 초기 초기 화 합 니 시작 시작 합 니 다음 다음 다음 다음 다음 다음 다음 다음 다음 (No); scanf ("% d", & q - > data); p - > next = q; p = q;}p - > next = s;} void Dis(Nodes) {Nodev = s - > next; while (v! = s) {printf ("% d - >", v - > data); v = v - - - > data); v - - - - > next;}}}}} void Empty (Nodes) {Nodep= s - > next; Nodeq = p - > next; whi(p! = s) {free (p = s; p = q = q / q - > next;} / q - - > next;} free (s);} / void Delete (Nodes) {/ / void (Nodes) {int / / / / / / / / void 삭제 (Nodes) {int; printf (삭제 할 데 이 터 를 입력 하 십시오: "삭제 할 데 d", & a); Nodep = s - > next; int flag = 0; Nodeq = s; while (p! = s){if (p - > data = = a) {q - - > next= p - > next = p - > next = p - > next = p - > data = = = a) {q - - > next = p - - > next = p - - > next = p - - > next = p - > next; flag = 1; break;} p = p = p - > next; q = q - - - > next;}} / void 삽입 할 데 이 터 를 입력 하 십시오.}} / void 삽입 할 데 이 터 를 입력 하 십시오.}} / / void 삽입 할 데 이 터 를 입력 하 십시오. ("); scanf ("% d ", & q - - - - > / / q - > data); printf (" 다음 데 이 터 를 삽입 할 데 이 터 를 입력 하 십시오: a); Nodep = s - > next; while (p! = s) {if(p - > dataa) {q - - > next = p - > next = p - > next = q; flag = 1; break;} p = p - - > dataa) {q - - > next = p - - > next = p - - - > next = p - - > next = p - > next = p - - > next = p - - > next = p - > next = p - > next = "삽입 성공!"); else printf ("삽입 실패!");} / / / / / / / / 플러그 / void 삽입 (Nodes) {Nodeq = (Node *) malloc (sizeof (Node)); printf ("삽입 할 데 이 데 이 터 를 입력 하 십시오:"); scanf (% d "% d", & q - next = q;} / int main (){Nodehead = InitList (); Add (head); / / Delete (head); Insert (head); printf ("이 데 이 터 는 다음 과 같 습 니 다"); printf ("); Display (head); Empty (head); printf (" 이 링크 는 비 워 졌 습 니 다! "); 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에 따라 라이센스가 부여됩니다.