Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.67.48] |
|
Сообщ.
#1
,
|
|
|
я хочу, чтобы у меня был массив структур, каждая из которых содержала некоторое значение и ссылку на следующий элемент этого массива
struct tcl { int key; Array[] *adress; }; // Глобальные переменные static tcl *first; tcl Array[N]; Как-то так, но выдает ошибку |
Сообщ.
#2
,
|
|
|
Вообще-то, лучше указывать тест ошибки и строку, на которую ошибка указывает. Да еще ОС и компилятор неплохо (посмотри на верх страницы). И не понятно, причем тут хеш-таблицы. Это связный однонаправленный список. Поменяйте название топика соответственно теме вопроса. И используйте теги CODE для оформления кода.
Ну а так, навскидку struct tcl { int key; tcl* next; }; static tcl *head; head = new tcl; head->next = NULL; ... //не забудь удалить созданные элементы |
Сообщ.
#3
,
|
|
|
вроде рабочее... не помню Borland 3.1
#include <stdlib.h> #include <stdio.h> #include <conio.h> #include <iostream.h> #include<STRING.H> typedef struct element { double data; element *next; }; typedef class doubleList { private: element *head; element *tail; int count; public: doubleList(); ~doubleList(); void add(double data); void delFromHead();//del head void delFromTail(); void delAll(); void print(); int getCount(); void dellFromElementForData(double dat); }; doubleList::doubleList() { head=tail=NULL; count=0; } doubleList::~doubleList() { delAll(); } int doubleList::getCount() { return count; } void doubleList::add(double data) { element*temp=new element; temp->data=data; temp->next=NULL; if(head!=NULL) { tail->next=temp; tail=temp; } else { head=tail=temp; } } void doubleList::delFromHead() { element*temp=head; head=head->next; delete temp; } void doubleList::delFromTail() { element *temp; for( temp = head ; temp !=NULL ; temp = temp->next) { if( temp->next == tail) { delete tail; temp->next = NULL; tail = temp ; } } } void doubleList::delAll() { while(head!=0)delFromHead(); } void doubleList::print() { element*temp=head; while(temp!=0) { cout<<temp->data<<" "; temp=temp->next; } cout<<"\n\n"; } void doubleList::dellFromElementForData(double dat) { element *temp=head,*temp1,*tempD; if(head->data == dat )delFromHead(); do { if(temp->next->data == dat ) { temp1=temp; temp1=temp1->next; tempD=temp1; temp1=temp1->next; temp->next = temp1; delete tempD; } temp=temp->next; }while(temp->next!=NULL); } void main () { clrscr(); doubleList list; int i,n; double d; cout<<"vvedite razmer spiska \n"; cin>>n; cout<<"\nzapolnite spisok drobnimi 4islami\n"; for(i = 0 ;i < n ; i ++ ) { cin>>d; list.add(d); } list.print(); cout<<"vvedite znachenie elementa dlia ydalenia\n"; cin>>d; list.dellFromElementForData(d); list.print(); getch(); } |
Сообщ.
#4
,
|
|
|
std::list
|
Сообщ.
#5
,
|
|
|
std/boost::unordered_map
|
Сообщ.
#6
,
|
|
|
имхо, вот что ему нужно:
// описание типа данных элемента struct Telem { int inf; Telem *link; } Telem *a = new Telem[количество элементов массива]; // т е a - массив структур (главная магистраль) и от каждого элемента можно выстраивать веточку. |
Сообщ.
#7
,
|
|
|
Цитата FasterHarder @ имхо, вот что ему нужно: только надо ещё написать хэш функцию для определения позиции в массиве. |