0
#include <stdio.h>
2.
include <stdlib.h>
struct node
{
int a;
struct node *next;
};
void push(struct node**head,int data)
{
struct node* neww=(struct node*)malloc(sizeof(struct node));
if(*head==NULL)
{
neww->a=data;
neww->next=NULL;
*head=neww;
}
else
{
neww->a=data;
neww->next=*head;
*head=neww;
}
}
void print_it(struct node*head)
{
if(head==NULL)
puts("list empty");
while(head!=NULL)
{
printf("%d->",head->a);
head=head->next;
}
puts("n");
}
int print_rec(struct node*head)
{
if(head==NULL)
{
puts("n");
return 0;
}
else
{
printf("%d->",head->a);
head=head->next;
print_rec(head);
}
return 1;
}
bool delete_it(struct node**head)
{
if(*head==NULL)
{
return false;
}
struct node*temp=*head;
struct node*temp2=temp->next;
free(temp);
*head=temp2;
return true;
}
bool search(struct node*head,int data)
{
while(head!=NULL)
{
if(head->a==data)
return true;
head=head->next;
}
return false;
}
int count_it(struct node*head)
{
int say=0;
while(head!=NULL)
{
say++;
head=head->next;
}
return say;
}
int count_rec(struct node*head)
{
int say=1;
if(head==NULL)
return 0;
else
{
if(count_rec(head->next))
say+=count_rec(head->next);
}
return say;
}
int sum(struct node*head)
{
int say=0;
while(head!=NULL)
{
say+=head->a;
head=head->next;
}
return say;
}
int max(struct node*head)
{
int say=0;
if(head==NULL)
{
return -8765;
}
while(head!=NULL)
{
if((head->a)>(say))
say=head->a;
head=head->next;
}
return say;
}
int min(struct node*head)
{
int say=0;
if(head==NULL)
{
return -8765;
}
say=head->a;
while(head!=NULL)
{
if((head->a)<(say))
say=head->a;
head=head->next;
}
return say;
}
int main()
{
int key=1,data;
int position;
struct node* head=NULL;
struct node*newhead=NULL;
struct node*le;
//le=003E40DO;
while(key!=-1)
{
puts("n1-insertn2-deleten3-searchn4-print_recn5-print_itn6-count_recn7-count_itn8-maxn9-minn10-sumn-1-exitnsecim:");
scanf("%d",&key);
puts("n");
switch (key)
{
case 1:
puts("data:n");
scanf("%d",&data);
push(&head, data);
printf("%d has append!n",data);
break;
case 2:
if(delete_it(&head))
puts("it has deleted!");
else
puts("list is empty!");
break;
case 3:
puts("data:n");
scanf("%d",&data);
if(search(head, data))
puts("it has found!");
else
puts("no find!");
break;
case 4:
if(!print_rec(head))
puts("list empty");
break;
case 5:
print_it(head);
break;
case 6:
printf("there is(are) %d data(s). with recursiven",count_rec(head));
break;
case 7:
printf("there is(are) %d data(s). with iterativen",count_it(head));
break;
case 8:
if(max(head)!=-8765)
printf("max data is %d.n",max(head));
else
puts("list empty");
break;
case 9:
if(min(head)!=-8765)
printf("min data is %d.n",min(head));
else
puts("list empty");
break;
case 10:
printf("sum of data is %d.n",sum(head));
break;
case 12:
// addlist(&head,&newhead);
break;
case 13:
//turnlist(&head);
break;
}
}
return 0;
}
Tümünü Göster