impulse
02/02/2006, 15:09
1) Program kullanıcıdan positif tamsayılar alacak ve bunları bir listeye yerleştirecektir.
2) Işlem kullanıcı negatif bir sayı girdiğinde sona erecektir.
3) Veri girşinin herhangibir anında o zamana kadar okunan tamsayılar listede büyükten küçüğe doğru sıralanmış şekilde yer almalıdırlar.
4) Bu sıralamayı sağlayacak olan ekleme fonksiyonu şu özelliklere sahip olmalıdır. Eğer liste henüz boş ise kullanıcıdan alınan ilk eleman doğrudan listeye yerleştirilmelidir. Eğer listeye daha önceden elemanlar yerleştirilmis ise üç değişik alternatif ortaya çıkmaktadır. Yeni gelen tamsayı listedeki tüm elemanlardan daha büyük olabilir. Bu durumda listenin en başına eklenmelidir. Hepsinden küçük olduğu durumda ise en sonda yer almalıdır. Bir üçüncü olasılık ise yeni tamsayının bazı elemanlardan büyük bazı elemanlardan ise küçük olmasıdır. Bu durumda da daha önceden oluşturulan listede bu yeni tamsayı için doğru yerin tespit edilmesi ve oraya ekleme işleminin gerçekleştirilmesi gerekmektedir. Eğer ekleme fonsiyonu bu özelliklere sahip ise oluşturmaya başladığı listede yer alan tamsayılar hep sıralı olacaklardır.
Programa başladım ama devamı konusunda yardıma ihtiyacım var.Teşekkürler.
void insert_elm(struct List *pl,int val)
{
struct Item *pt=(struct Item *)malloc(sizeof(struct Item));
pt->val=val;
pt->next = pl->list;
pl->list = pt;
}
struct Item *atEnd(struct List *pl)
{
struct Item *curr;
if (pl->list == 0)
return 0;
curr = pl->list;
while (curr->next)
curr = curr->next;
return curr;
}
2) Işlem kullanıcı negatif bir sayı girdiğinde sona erecektir.
3) Veri girşinin herhangibir anında o zamana kadar okunan tamsayılar listede büyükten küçüğe doğru sıralanmış şekilde yer almalıdırlar.
4) Bu sıralamayı sağlayacak olan ekleme fonksiyonu şu özelliklere sahip olmalıdır. Eğer liste henüz boş ise kullanıcıdan alınan ilk eleman doğrudan listeye yerleştirilmelidir. Eğer listeye daha önceden elemanlar yerleştirilmis ise üç değişik alternatif ortaya çıkmaktadır. Yeni gelen tamsayı listedeki tüm elemanlardan daha büyük olabilir. Bu durumda listenin en başına eklenmelidir. Hepsinden küçük olduğu durumda ise en sonda yer almalıdır. Bir üçüncü olasılık ise yeni tamsayının bazı elemanlardan büyük bazı elemanlardan ise küçük olmasıdır. Bu durumda da daha önceden oluşturulan listede bu yeni tamsayı için doğru yerin tespit edilmesi ve oraya ekleme işleminin gerçekleştirilmesi gerekmektedir. Eğer ekleme fonsiyonu bu özelliklere sahip ise oluşturmaya başladığı listede yer alan tamsayılar hep sıralı olacaklardır.
Programa başladım ama devamı konusunda yardıma ihtiyacım var.Teşekkürler.
void insert_elm(struct List *pl,int val)
{
struct Item *pt=(struct Item *)malloc(sizeof(struct Item));
pt->val=val;
pt->next = pl->list;
pl->list = pt;
}
struct Item *atEnd(struct List *pl)
{
struct Item *curr;
if (pl->list == 0)
return 0;
curr = pl->list;
while (curr->next)
curr = curr->next;
return curr;
}