标签:style blog color io for 数据 div log sp
实现一个基本的链表,包括在链表后添加数据节点和输出链表i所有数据的功能
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 typedef struct node 5 { 6 int data; 7 struct node *link; 8 }NODE; 9 10 //定义头指针 11 NODE *head; 12 13 void add(int data) 14 { 15 16 NODE *p; 17 p=(NODE *)malloc(sizeof(NODE)); 18 p->data=data; 19 20 if(head==NULL) 21 { 22 head=p; 23 return ; 24 } 25 26 //注意,此时要保证链表尾head->link永远在最后 27 p->link=head->link; 28 head->link=p; 29 } 30 31 void display(NODE *node) 32 { 33 int i=1; 34 if(node) 35 { 36 while(node) 37 { 38 printf("%d -> %d\n",i,node->data); 39 node=node->link; 40 ++i; 41 } 42 } 43 else 44 { 45 printf("this list had no data!\n"); 46 } 47 } 48 49 int main(void) 50 { 51 add(1); 52 add(2); 53 display(head); 54 return 0; 55 }
实现向链表固定位置插入数据和删除数据的功能
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 typedef struct node 5 { 6 int data; 7 struct node *link; 8 }NODE; 9 10 //定义头指针 11 NODE *head; 12 13 void add_node(int data) 14 { 15 16 NODE *p; 17 p=(NODE *)malloc(sizeof(NODE)); 18 p->data=data; 19 20 if(head==NULL) 21 { 22 head=p; 23 return ; 24 } 25 26 //注意,此时要保证链表尾head->link永远在最后 27 p->link=head->link; 28 head->link=p; 29 } 30 31 //删除第i个节点 32 void delete_node(int i) 33 { 34 NODE *p; 35 NODE *q; 36 int n; 37 if(!head) 38 { 39 return ; 40 } 41 if(i == 1) 42 { 43 p=head; 44 head=head->link; 45 free(p); 46 return ; 47 } 48 for(n=1,q=head;n<i-1 && q->link!=NULL; ++n) 49 { 50 q=q->link; 51 } 52 p=q->link; 53 q->link=p->link; 54 free(p); 55 } 56 57 //插入节点 58 void insert_node(int i,int data) 59 { 60 NODE *p; 61 NODE *q; 62 int n; 63 64 p=(NODE *)malloc(sizeof(NODE)); 65 p->data=data; 66 67 if(i == 1) 68 { 69 p->link=head; 70 head=p; 71 return ; 72 } 73 for(n=1,q=head;n<i-1 && q!=NULL;++n) 74 { 75 q=q->link; 76 } 77 p->link=q->link; 78 q->link=p; 79 } 80 81 void display(NODE *node) 82 { 83 int i=1; 84 if(node) 85 { 86 while(node) 87 { 88 printf("%d -> %d\n",i,node->data); 89 node=node->link; 90 ++i; 91 } 92 } 93 else 94 { 95 printf("this list had no data!\n"); 96 } 97 } 98 99 int main(void) 100 { 101 add_node(1); 102 add_node(2); 103 display(head); 104 printf("\n"); 105 insert_node(1,3); 106 display(head); 107 return 0; 108 }
标签:style blog color io for 数据 div log sp
原文地址:http://www.cnblogs.com/lhyz/p/3949969.html