[데이터 구조 - C 언어] > 주어진 정형 배열 에 따라 꼬리 삽입 법 으로 단일 체인 표를 만 들 고 삽입 삭제 등 을 찾 습 니 다.
알고리즘 소스 코드
#include
#include
#include
typedef struct Node{ //
int data; //
struct Node *next; //
}LNode,*LinkList; //2 , 、
/******* n L,n values *****/
LinkList Creat_LinkList(int *values) // values
{
int i,n;
LinkList tail,p; //
LinkList head=(LinkList)malloc(sizeof(LNode)); //
if (head!=NULL)
{
printf(" n=");scanf("%d",&n) ;
head->next=NULL;
tail=head;
for(i=0;i<n;i++)
{
p=(LinkList)malloc(sizeof(LNode));
p->data=values[i];
if(p!=NULL){
printf(" %d :%d
",i+1,p->data);
tail->next=p;
tail=p;
tail->next=NULL;
}
else {
printf(" !");
exit(0);}
} }
else {
printf(" !");
exit(0);}
return head;
}
void insert_LinkList(LinkList head,int i,int e) //
{
int j=0;
LinkList q=head,s;
while(q!=NULL&&j<i-1){
q=q->next;
++j;
}
if(q==NULL||j>i-1){
printf(" !");
exit(0);}
else {s=(LinkList)malloc(sizeof(LNode));
if(s==NULL){
printf(" !");
exit(0);}
else {s->next=q->next;
q->next=s;
s->data=e;
}
}
return;
}
void traverse_list(LinkList head) //
{
LinkList p=head->next;
printf("
:") ;
while(NULL!=p)
{printf("%d ",p->data);
p=p->next;
}
printf("
");
return;
}
int seek_elem(LinkList head) //
{
int a=0,i=0;
LinkList q=head;
printf(" a=");scanf("%d",&a);
while(q!=NULL&&q->data!=a)
{
q=q->next;
++i;
}
if(q==NULL)
{
printf(" a!");
exit(0);
}
return i;
}
void delete_elem(LinkList head) //
{
int e=0;
LinkList r=head,t;
printf(" e=");scanf("%d",&e);
while(r->next!=NULL&&r->next->data!=e)
{
r=r->next;
}
if(r->next==NULL)
{
printf(" !");
}
else
{
t=r->next->next;
free(r->next);
r->next=t;
}
return;
}
int main(void)
{
int a=0,n=0,m=0,i=0,e=0;
int values[100]; //
printf(" values , :");scanf("%d",&n);
printf(" :
");
for(m=0;m<n;m++)
scanf("%d",&values[m]);
LinkList head=NULL;
head=Creat_LinkList(values);
traverse_list(head);
printf(" :");scanf("%d",&i);
printf(" :");scanf("%d",&e);
insert_LinkList(head,i,e);
traverse_list(head);
delete_elem(head);
traverse_list(head);
a=seek_elem(head);
printf(" %d 。",a) ;
return 0;
}
질문 과 궁금 한 점 이 있 으 시 면 댓 글로 남 겨 주세요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
c 언어 간단한 파일 r/w 조작 방법데이터의 입력과 출력은 거의 모든 C 언어 프로그램과 수반된다. 입력이란 원본에서 데이터를 얻는 것이다. 출력은 단말기에 데이터를 쓰는 것으로 이해할 수 있다.이곳의 원본은 키보드, 마우스, 하드디스크, 시디, 스캐...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.