Singly linked list application function

Publisher:532829319hmkLatest update time:2015-05-11 Source: 51hei Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere
Note: After creating a node, be sure to destroy the node.
 
 
#include
 
#include
 
typedef struct node{
 
       dated;
 
       structnode *next;
 
} node_t;
 
// Create node function
 
void *create(int size);
 
// Initialize the linked list
 
int init(node_t *head);
 
// Header insertion method
 
int insert_head(node_t *head,node_t *pn);
 
// Tail insertion method
 
int insert_end(node_t *head,node_t *pn);
 
// Print all node contents
 
void print(node_t *head);
 
// Destroy all nodes
 
void destroy(node_t *head);
 
// Application function
 
// Create a linked list of length len and enter the content
 
int create_link(node_t *head,int len);
 
 
 
int main()
 
{
 
       node_t*head = NULL;
 
       intlen = 0;
 
 
 
       if(init(head= create(sizeof(node_t))) != 0){
 
              printf("failed to initialize linked list");
 
              exit(0);
 
       }
 
       printf("Length: ");
 
       scanf("%d",&len);
 
       create_link(head,len);
 
       print(head);
 
 
 
       destroy(head);
 
       free(head);
 
       head= NULL;
 
 
 
       return0;
 
}
 
// Create node function
 
// Return the first address of the new node if successful, or NULL if failed
 
void *create(int size)
 
{
 
       returncalloc(1,size);
 
}
 
// Initialize the linked list
 
// 0-success 1-failure
 
int init(node_t *head)
 
{
 
       if(NULL== head)
 
              return1;
 
       head->next= NULL;
 
 
 
       return0;
 
}
 
// Header insertion method
 
// 0-success 1-failure
 
int insert_head(node_t *head,node_t *pn)
 
{
 
       if(NULL== pn)
 
              return1;
 
       pn->next= head->next;
 
       head->next= pn;
 
 
 
       return0;
 
}
 
// Tail insertion method
 
// 0-success 1-failure
 
int insert_end(node_t *head,node_t *pn)
 
{
 
       node_t*tail = NULL;
 
 
 
       if(NULL== pn)
 
              return1;
 
       tail= head;
 
       while(tail->next!= NULL)
 
              tail= tail->next;
 
       tail->next= pn;
 
       pn->next= NULL;
 
 
 
       return0;
 
}
 
// Print all node contents
 
void print(node_t *head)
 
{
 
       node_t*cur = NULL;
 
 
 
       cur= head->next;
 
       while(cur!= NULL){
 
              printf("%d",cur->data);
 
              cur= cur->next;
 
       }
 
       printf(" ");
 
}
 
// Destroy all nodes
 
void destroy(node_t *head)
 
{
 
       node_t*del =NULL,*n_node = NULL;
 
 
 
       del = head->next;
 
       while(del != NULL){
 
              n_node= del->next;
 
              free(of);
 
              del = n_node;
 
       }
 
       init(head);
 
}
 
// Application function
 
// Create a linked list of length len and enter the content
 
// Return the number of nodes created
 
int create_link(node_t *head,int len)
 
{
 
       you = 0;
 
       node_t*n_node = NULL;
 
 
 
       printf("Input %d number: ",len);
 
       for(i= 0;i < len;i++){
 
              n_node = create(sizeof(node_t)); //Create a new node
 
              if(NULL== n_node)
 
                     turn back
 
              scanf("%d",&n_node->data); // Input data
 
              insert_end(head,n_node); // insert linked list
 
       }
 
 
 
       turn back;
 
}
Reference address:Singly linked list application function

Previous article:C language random function
Next article:Build a complete life structure program framework

Latest Microcontroller Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号