단일 체인 표 의 실현 (취 합 기능 이 있 음)
2959 단어 데이터 구조
Code:
#include
#include
#include
typedef struct Node
{
int data;
struct Node *pNext;
}Node,*PNode;
PNode create_list(void);
void traverse_list(PNode pHead);
PNode insert_list(PNode pHead,int pos,int val);
PNode delete_list(PNode pHead,int pos);
void hebin_list(PNode pHead1,PNode pHead2);
int main()
{
PNode pHead1=NULL,pHead2=NULL;
printf(" :
");
pHead1=create_list();
insert_list(pHead1,3,4);
insert_list(pHead1,3,7);
delete_list(pHead1,7);
traverse_list(pHead1);
printf(" :
");
pHead2=create_list();
traverse_list(pHead2);
printf(" :
");
hebin_list(pHead1,pHead2);
traverse_list(pHead2);
return 0;
}
void hebin_list(PNode pHead1,PNode pHead2){
PNode p=pHead1->pNext;
PNode q=pHead2->pNext;
PNode s;
while(p->pNext!=NULL){
while(q->pNext!=NULL){
if(p->pNext->data==q->pNext->data){
break;
}else{
q=q->pNext;
}
}
if(q->pNext==NULL)
{
s=(PNode)malloc(sizeof(Node));
s->data=p->pNext->data;
s->pNext=NULL;
q->pNext=s; //p->next=p->next->next;
}
p=p->pNext;
q=pHead2->pNext;
}
}
PNode create_list(void)
{
int len;
int i;
int val;
PNode pHead=(PNode)malloc(sizeof(Node));
if(NULL==pHead)
{
printf(" .
");
exit(-1);
}
PNode p=pHead;
p->pNext=NULL;
printf(" :len=");
scanf("%d",&len);
for(i=0;idata=val;
p->pNext=pNew;
pNew->pNext=NULL;
p=pNew;
}
return pHead;
}
void traverse_list(PNode pHead)
{
PNode p=pHead->pNext;
while(NULL!=p)
{
printf("%d ",p->data);
p=p->pNext;
}
printf("
");
return;
}
PNode insert_list(PNode pHead,int pos,int val)
{
int i=0;
PNode p=pHead;
while(p!=NULL&&ipNext;
i++;
}
if(i>pos-1||p==NULL)
exit (-1);
PNode pNew=(PNode)malloc(sizeof(Node));
if(NULL==pNew)
{
printf(" !
");
exit(-1);
}
pNew->data=val;
PNode q=p->pNext;
p->pNext=pNew;
pNew->pNext=q;
}
PNode delete_list(PNode pHead,int pos)
{
int i=0;
PNode p=pHead;
while(p->pNext!=NULL&&ipNext;
i++;
}
if(p->pNext==NULL||i>pos-1)
exit (-1);
PNode q=p->pNext;
p->pNext=p->pNext->pNext;
free(q);
q=NULL;
return ;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.