#include<stdio.h>
struct Test
{
int data;
struct Test* next;
};
void printlink(struct Test* head)
{
struct Test* point;
point = head;
while (point != NULL)
{
printf("%d\n", point->data);
point = point->next;
}
putchar('\n');
}
int getlinkNum(struct Test* head)
{
int cnt = 0;
struct Test* p = head;
while (p != NULL)
{
cnt++;
p = p->next;
}
return cnt;
}
int searchlinkNum(struct Test* head, int data)
{
int cnt = 0;
while (head != NULL)
{
if (head->data == data)
{
return 1;
}
head = head->next;
}return 0;
}
int insertlink(struct Test *head, int data, struct Test *new)
{
struct Test* p = head;
while (p != NULL) {
if (p->data == data) {
new->next = p->next;
p->next = new;
return 1;
}
p = p->next;
}
return 0;
}
int main()
{
int i;
int array[] = { 1,2,3 };
for (i = 0; i < sizeof(array) / sizeof(array[0]); i++)
{
printf("%d\n", array[i]);
}
putchar('\n');
struct Test t1 = { 1,NULL };
struct Test t2 = { 2,NULL };
struct Test t3 = { 3,NULL };
struct Test t4 = { 4,NULL };
struct Test t5 = { 5,NULL };
t1.next = &t2;
t2.next = &t3;
t3.next = &t4;
t4.next = &t5;
struct Test new = { 666,NULL };
printf("use t1 to print the three nums\n");
// printf("%d %d %d\n",t1.data,t2.next->data,t1.next->next->data);
printlink(&t1);
int ret = getlinkNum(&t1);
printf("put total num = %d\n", ret);
ret = searchlinkNum(&t1, 1);
if (ret == 0) {
printf("no 1\n");
}
else {
printf("have 1\n");
}
puts("after insret behand\n");
insertlink(&t1, 1, &new);
getlinkNum(&t1);
return 0;
}