Прежде чем я начну, я хочу прояснить, что я не хочу ответа на мою проблему HOMEWORK, я просто хотел бы, если бы кто-то мог на самом деле объяснить, что именно мой инструктор запрашивает в этом задании (предпочтительно дурацкая версия) и, возможно, полезный толчок в правильном направлении.У меня много проблем с этой темой, и всякий раз, когда я спрашиваю инструктора, я обнаруживаю, что он смущает меня больше всего на свете.
Итак, вот присваивание:
1.Добавить новую функцию insertN (список структур * x, int num, int pos, int n), которая будет вставлять n копий целого числа numв положении pos, если это возможно (если pos слишком велико, примите соответствующие меры).Главное, что меня здесь смущает, это то, что он подразумевает под позицией поз.
Вот код, с которым я работаю - он был написан моим учителем, и я должен изменить его.
#include<stdio.h>
#include<stdlib.h>
struct list {
int data;
struct list * next;
};
struct list *slist;
/*adds a node at the end of the linked list*/
void insert(struct list *x,int num){
/*if the list is empty*/
if(x==NULL){
/*create first node*/
slist=malloc(sizeof(struct list));
slist->data=num;
slist->next=NULL;
}
else{
/*go to the last node*/
while(x->next!=NULL) x=x->next;
/*add node at the end*/
x->next=malloc(sizeof(struct list));
x->next->data=num;
x->next->next=NULL;
}
}
void display(struct list *x){
/*traverse the entire linked list*/
while(x!=NULL){
printf("%d->",x->data);
x=x->next;
}
printf("NULL");
}
void reverse(struct list *x){
struct list *prev,*rev,*temp;
prev=x;
rev=NULL;
while(prev!=NULL){
temp=rev;
rev=prev;
prev=prev->next;
rev->next=temp;
}
slist=rev;
}
void search(struct list *x,int a){
struct list *runner;
int found=0;
for(runner=x;runner!=NULL;runner=runner->next){
if(runner->data==a){
printf("data found");
found=1;
break;
}
}
if(found==0) printf("data not found");
}
main(){
int number,a;
slist=NULL;/*empty linked list*/
printf("Enter the element for data part:");
scanf("%d",&number);
insert(slist,10);
insert(slist,number);
insert(slist,20);
display(slist);
printf("\n");
reverse(slist);
display(slist);
printf("\nEnter the element for searching:");
scanf("%d",&a);
search(slist,a);
printf("\n");
getchar();
getchar();
}
Опять же, я не ожидаю ответа на проблему, простообъяснение и толчок в правильном направлении.