?
Solved

array to linked list

Posted on 2006-11-16
3
Medium Priority
?
869 Views
Last Modified: 2013-12-14
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
single linked list or double linked list?
could someone give me a detail example or sample code..

thanks

0
Comment
Question by:rmtogether
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 19

Expert Comment

by:BrianGEFF719
ID: 17960601
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
 
LVL 1

Expert Comment

by:pattjin
ID: 17960829
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;
};

struct list_entry *head = NULL;
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];
       cur->next = head;
       head = cur;
   }
}
0
 
LVL 1

Accepted Solution

by:
pattjin earned 2000 total points
ID: 17960844
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];
       cur->next = head;
       head = cur;
   }
}
0

Featured Post

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

An Outlet in Cocoa is a persistent reference to a GUI control; it connects a property (a variable) to a control.  For example, it is common to create an Outlet for the text field GUI control and change the text that appears in this field via that Ou…
Update (December 2011): Since this article was published, the things have changed for good for Android native developers. The Sequoyah Project (http://www.eclipse.org/sequoyah/) automates most of the tasks discussed in this article. You can even fin…
The goal of this video is to provide viewers with basic examples to understand opening and writing to files in the C programming language.
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
Suggested Courses

777 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question