Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

C vector


Ceday

Öne çıkan mesajlar

Vector STL kütüphanesinin linked list templ. adı. Genelde sık değişen listeleri ve b-treeler için kullanılır.

Sınıfları, templateleri ve doğal olarak C++ kullanman gerekli Vector için.[signature][hline]Game Developer
Hypercube the game
Zamanında M.A.D. Orcun olarak bilinirdi.

[Bu mesaj Ametal tarafından 23 Kasım 2004 00:37 tarihinde değiştirilmiştir]
Link to comment
Sosyal ağlarda paylaş

aaa ceday valla kusura bakma unuttum gitti ya.inşallah iş işten geçmemiştir.

birinci sınıfta yaptığım bi take home.her struct'ın içinde bi char var. bi incele belki işine yarar.


said:


#include
#include
#include

typedef enum Bool{FALSE,TRUE} Boolean;

typedef struct node NODE;

struct node
{
char data;
struct node *next;
struct node *prev;
};


NODE* CreateList(int n)
{
NODE *list=NULL,*temp,*prevtemp;
int i;
if(n>0)
{
list=(NODE*)malloc(sizeof(NODE));
temp=list;
prevtemp=list;
for (i=0;i {
temp->next=(NODE*)malloc(sizeof(NODE));
printf("Enter the data section of %d. NODE:n" ,i+1);
scanf("%c" ,&temp->data);
flushall();
if(i<(n-1))
{
temp=temp->next;
temp->prev=prevtemp;
prevtemp=prevtemp->next;
}
}
temp->next=list;
list->prev=temp;
return list;
}
else return list;

}

void PrintList(NODE *list)
{
if(list!=NULL)
{

int i;
NODE *temp=list;
printf("List:n");
printf("%cn" ,temp->data);
temp=temp->next;
for(;temp!=list;temp=temp->next)
printf("%cn" ,temp->data);

}
else printf("This is an Empty list...n");

}

NODE* Delete(NODE *list,char data)
{


if(list!=NULL)
{
NODE *temp=list,*temp2,*ToDel;
if(list->next==list && data==temp->data)
{
list=NULL;
free(temp);
return NULL;
}

if(data==temp->data)
{
ToDel=temp;
temp2=temp->prev;
temp2->next=temp->next;
temp=temp->next;
temp->prev=temp2;
free(ToDel);
list=temp;
printf("Success:n");
return list;
}
temp=temp->next;

for(;temp!=list;temp=temp->next)
{
if(data==temp->data)
{
ToDel=temp;
temp2=temp->prev;
temp2->next=temp->next;
temp=temp->next;
temp->prev=temp2;
free(ToDel);
printf("Success:n");
return list;
}
}
printf("Failure:nThis Data Is Not In The List...n");

return list;
}
else printf("ERROR:List Is Empty...n");
return NULL;
}

Boolean Member(char data,NODE *list)
{
if(list!=NULL)
{
NODE *temp;
if(list->data==data)
return TRUE;
for(temp=list;temp->next!=list;temp=temp->next)
if(data==temp->data)
return TRUE;
return FALSE;
}
else printf("ERROR:List Is EMPTY...n");
return 10;
}

int Count(NODE *list)
{
if(list!=NULL)
{
int a=1;
NODE *temp;
for(temp=list;temp->next!=list;temp=temp->next)
a++;
return a;
}
else return 0;

}

NODE* Locate (NODE *list,char data)
{
if(list!=NULL)
{
NODE *temp=list;
if(list->data==data)
return list;
for(;temp->next!=list;temp=temp->next)
{
if(data==temp->data)
return temp;
}
return NULL;
}
else return 1;
}

NODE* Concatanate(NODE *list1,NODE *list2)
{
if(list1!=NULL && list2!=NULL)
{
NODE *temp,*temp2;
temp=list1->prev;
temp->next=list2;
temp2=list2->prev;
list2->prev=temp;
temp2->next=list1;
list1->prev=temp2;
return list1;
}
else printf("One or Both Of The Lists Is/Are EMPTYn");
return list1;
}

NODE* Insert(NODE *list,char data,int place)
{
NODE *temp=list,*temp2,*add;
add=(NODE*)malloc(sizeof(NODE));
add->data=data;
if(list!=NULL)
{
int i;

i=Count(list);
if(place>i)
{
printf("The List Is Not Including Such A Place %dn" ,place);
return list;
}


if(place==0)
{
add->prev=list->prev;
add->next=list;
temp2=list->prev;
temp2->next=add;
list->prev=add;
list=add;
return list;
}
else
{
for(i=0;i temp=temp->next;
add->prev=temp->prev;
add->next=temp;
temp2=temp->prev;
temp2->next=add;
temp->prev=add;
return list;
}
}
else
{
if(place>0)
{
printf("You Can Only Add 0. Place On an Empty Listn");
return list;
}
list=add;
list->next=list;
list->prev=list;
}
return list;
}


void Sort(NODE *list,char SortType)
{
if(list!=NULL)
{
char swap;
NODE *temp=list,*temp2=list;
temp=temp->prev;
temp->next=NULL;
if(SortType=='+')
{
for(temp=list;temp!=NULL;temp=temp->next)
for(temp2=temp;temp2!=NULL;temp2=temp2->next)
if(temp->data>temp2->data)
{
swap=temp->data;
temp->data=temp2->data;
temp2->data=swap;
}
}
else if(SortType=='-')
{
for(temp=list;temp!=NULL;temp=temp->next)
for(temp2=temp;temp2!=NULL;temp2=temp2->next)
if(temp->datadata)
{
Link to comment
Sosyal ağlarda paylaş

×
  • Yeni Oluştur...