• Авторизация


Прога по связанному списку 28-03-2007 20:53 к комментариям - к полной версии - понравилось!


// BindSpis.cpp : Defines the entry point for the console application.
// variant 2.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "conio.h"
//#include "io.h"
#include
//#include "stdio.h"


struct mistake {
char word[10];
int number;
struct mistake *next;
} mass[100]={
"goat ",56,&mass[1],
"dog ",2,&mass[2],
"cat ",3,&mass[3],
"elephant ",6,&mass[4],
"monkey ",13,&mass[5],
"sloth ",46,&mass[6],
"mouse ",4,&mass[7],
"snake ",38, &mass[7] //(struct mistake * ) 0
};

/*struct mistake {
char word[50];
int number;
struct mistake *next;
};
struct mistake mass[100];*/

//malloc( sizeof(mistake) * n)

struct mistake * firstElement;
int lengthList=8;
int lengthMass=7;
int typeSort;

void printList();
struct mistake * Sorter();
struct mistake * SorterAlf();
void RemoveElement();
void Add();

int _tmain(int argc, _TCHAR* argv[])
{

int i;
char g;
//firstElement=&mass[0];
firstElement=Sorter();
typeSort=1;

do
{
//clrscr();
printf("\nadd new element- 1\n");
printf("remove element - 2\n");
printf("sorter - 3\n");
printf("SorterAlf - 4\n");
printf("quit - 0\n\n");

//cout << "add new element-1"<<"\n";
//cout << "remove element -2"<<"\n";
//cout << "sorter -3"<<"\n";
g=getch();
switch(g)
{
case '1':Add(); printList(); break;
//case '2':remove();break;
case '3': firstElement=Sorter(); printList(); break;
case '4': firstElement=SorterAlf(); printList(); break;
case '2': printList(); RemoveElement(); printList(); break;
}
}
while (g!='0');


// buff = (struct mistake *) malloc( sizeof(mistake) * n);

//for(i=0;i* printList(n,&mass[0]);

firstElement=Sorter(n);
printList(n,firstElement);

firstElement=SorterAlf(n);
printList(n,firstElement); */

return 0;
}
void printList()
{
int i=0;
struct mistake *st;
if (lengthList==0) return;
// printf("%s %d\n",firstElement->word,firstElement->number);
st=firstElement;
while(iword,st->number);
st=st->next;
}
printf("\n");
}
struct mistake * Sorter(){

int i,j,idel,flag;
struct mistake *st;
struct mistake *stp;
struct mistake *first;

typeSort=1;
first=&mass[0];
i=1;
idel=0;

while (mass[i].number!=0)
{
if (mass[i].number==-1) { i=i+1; idel=idel+1; continue;}
st=first;
stp=first;
j=0;
flag=0;
while(j<(i-idel))
{
if(mass[i].numbernumber)
{
if (first->number>mass[i].number) first=&mass[i];
mass[i].next=st;
if (j!=0) stp->next=&mass[i];
flag=1;
break;
}
stp=st;
st=st->next;
j++;
}
if (flag==0) stp->next=&mass[i];
i=i+1;
}
return first;
}
struct mistake * SorterAlf()
{
int i,j,idel,flag;
struct mistake *st;
struct mistake *stp;
struct mistake *first;

typeSort=2;
first=&mass[0];
i=1;
idel=0;
while (mass[i].number!=0)
{
if (mass[i].number==-1) { i=i+1; idel=idel+1; continue;}
st=first;
stp=first;
j=0;
flag=0;
while(j<(i-idel))
{
if(mass[i].word[0]word[0])
{
if (first->word[0]>mass[i].word[0]) first=&mass[i];
mass[i].next=st;
if (j!=0) stp->next=&mass[i];
flag=1;
break;
}
stp=st;
st=st->next;
j++;
}
if (flag==0) stp->next=&mass[i];
i++;
}
return first;
}
void RemoveElement()
{
int code,flag;
printf("Enter code of Element you want remove\n");
scanf("%i",& code);
printf("\n");
if (code<0) return;
int i=0;
//struct mistake *st;

/*if ((lengthList==1)&&(firstElement->number=code))
{
lengthList=lengthList-1;
firstElement->number=-1;
return;
}
/*if(firstElement->number==code)
{
firstElement->number=-1;
firstElement=firstElement->next;
lengthList=lengthList-1;
return;
}*/
flag=0;
for (i=0;i/mass[lengthList].next=&mass[lengthList];
if (typeSort==1) firstElement=Sorter();
if (typeSort==2) firstElement=SorterAlf();

/* st=firstElement;
if (st->number>n)
{
mass[lengthMass].next=firstElement;
firstElement=&mass[lengthMass];
return;
}
i=0;
while(inext->number>n)
{
stp=st->next;
st->next=&mass[lengthMass];
mass[lengthMass].next=stp;

break;
}
i++;
st=st->next;
} */

}
вверх^ к полной версии понравилось! в evernote


Вы сейчас не можете прокомментировать это сообщение.

Дневник Прога по связанному списку | ФизФак_-_105 - Дневник ФизФак - 105 | Лента друзей ФизФак_-_105 / Полная версия Добавить в друзья Страницы: раньше»