hi,
How can I convert array to linked list.
for example, an array
int t [3][3]={  {3,3,4},
{8,2,1},
{3,3,4}
};

how to represent t[0][0] t[0][1]....t[2][2] with their value by linked list
could someone give me a detail example or sample code..

thanks

###### Who is Participating?

x

Commented:
oops, that should be i = 2 and j = 2... I just noticed it since I wrote it forwards the first time and then just reversed it:

for (i=2; i>=0; i--) {
for (j=2; j>=0; j--) {
struct list_entry *cur = malloc(sizeof(struct list_entry));
cur->val = t[i][j];
}
}
0

Commented:
You could create a 'standard' linked list whose nodes are integer arrays of size 3.

For an example of a linked list see:
http://vergil.chemistry.gatech.edu/resources/programming/c-tutorial/lists.html

0

Commented:
Don't forget to check for failed mallocs.  This code adds the list entrys in reverse order to avoid having to keep track of the last pointer. At the end, head will point to the value of  t[0][0], next t[0][1], t[0][2], t[1][0], and so forth until t[2][2];

int t [3][3]={  {3,3,4},
{8,2,1},
{3,3,4}
};

struct list_entry {
struct list_entry *next;
int val;
};

for (i=3; i>=0; i--) {
for (j=3; j>=0; j--) {
struct list_entry *cur = malloc(sizeof(struct list_entry));
cur->val = t[i][j];
}
}
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.