Смекни!
smekni.com

Программирование на языках высокого уровня 3 (стр. 2 из 2)

int endelement= endq->inf;

while (begq->inf != endelement) addel(getdelel());

addel(temp);

break;

}

case 3:

{

//в) удалить из очереди первых три объекта. Распечатать очередь.

for (i=0;i<2;i++) getdelel();

break;

}

case 4: exit(0); break;

default: exit(0);

}

printf("&bsol;nnew spisok&bsol;n");

output(begq);

cerr<<" ";

getch();

}

}

/*

struct cell* input(void)

{

struct cell *p;

p=(struct cell *)malloc(sizeof(struct cell));

printf("Sign=");

scanf("%s",& p->sign);

printf("Weight=");

scanf("%d",& p->weight);

if(p->weight==0)

{

free(p);

return NULL;

}

p->pc=input();

return p;

}

Задача 4

Создать связанный числовой список типа стек из 5 объектов. Распечатать его. Выполнить следующие операции со связанным списком:

а) добавить два новых объекта в стек. Распечатать стек;

б) поменять местами первый и последний объект в стека. Распечатать стек;

в) удалить из стека первых три объекта. Распечатать стек.

15

/*

struct list

{

int value;

struct list *next;

};

list *hear=NULL;

int count=0;

//void show

void show(struct cell *p)

{

if (p==NULL)

{

printf("&bsol;nEND");

return;

}

printf("&bsol;nadress=%p&bsol;tvalue=%d",p,p->value);

output(p->pc);

}

void add_head (long value)

{

count++;

list *old_head=head;

head=(struct list *)malloc(sizeof(struct list));

head->next=old_old_head;

head->value=value;

}

void insert (int pos,long value)

{

list *target;

list *old_next;

int i=0;

if(head!=NULL)

{

target=head;

while((i<pos)&&(target!=NULL))

{

target=target->next;

i++;

}

if(i!=pos) return;

old_next=target->next;

target=target->next=(struct list *)malloc(sizeof(struct list));

target->value=value;

target->next=old_next;

count+;

}

else

{

target=head=(struct list *)malloc(sizeof(struct list));

target->next=NULL;

target->value=value;

count+;

}

}

void delete_any (int pos)

{

if(pos<0) return;

list *previous;

int i=0;

if(head!=NULL)

{

if(pos==0)

{

list *next_item=head->next;

free(head);

head=next_item;

}

else

{

previous=head;

pos--;

while((i<pos)&&(previous!=NULL))

{

previous=previous->next;

i++;

}

if(i!=pos) return;

list *next_item=previous->next->next;

free(previous->next);

previous->next=next_item;

}

}

*/

16