链表的建立
#include <stdio.h>
2
3 struct test
4 {
5 int dat;
6 struct test *next;
7 };
8
9 void printlink(struct test *head)
10 {
11 while(head != NULL){
12 printf("%d",head->dat);
13 head = head->next;
14
15 }
16 putchar('\n');
17 }
18
19 int main()
20 {
21 struct test s1 = {1,NULL};
22 struct test s2 = {2,NULL};
23 struct test s3 = {3,NULL};
24 struct test s4 = {4,NULL};
25
26 s1.next = &s2;
27 s2.next = &s3;
28 s3.next = &s4;
29 printf("print data:\n");
30 printlink(&s1);
31 return 0;
32 }
链表的链点个数统计以及查找
#include <stdio.h>
struct test
{
int dat;
struct test *next;
};
void printlink(struct test *head)
{
while(head != NULL){
printf("%d",head->dat);
head = head->next;
}
putchar('\n');
}
int linkpointnum(struct test *head)
{
int num=0;
while(head != NULL){
num++;
head = head->next;
}
return num;
}
int search_link(struct test *head,int data)
{
while(head != NULL){
if(head->dat == data){
return 1;
}
head = head->next;
}
return 0;
}
int main()
{
struct test s1 = {1,NULL};
struct test s2 = {2,NULL};
struct test s3 = {3,NULL};
struct test s4 = {4,NULL};
s1.next = &s2;
s2.next = &s3;
s3.next = &s4;
printf("print data:\n");
printlink(&s1);
int ret;
ret = linkpointnum(&s1);
printf("link point num = %d\n",ret);
ret = search_link(&s1,1);
if(ret == 1){
printf("have 1\n");
}
else{
printf("no 1\n");
}
return 0;
}