void FinderList(struct MyList *L) { struct MyList *temp = L->next; while (temp != NULL) { printf("\n"); printf("------------------------------------------------------------\n"); printf(" 班费收支编号为: %s\n", temp->thing.num); printf(" 收入和还是支出: %s\n", temp->thing.into); printf(" 经办人是: %s\n", temp->thing.name); printf(" 收费原因为: %s\n", temp->thing.cause); printf(" 收费金额为: %s\n", temp->thing.money); printf(" 收费的总人数为: %s\n", temp->thing.people); printf(" 收费的日期为: %s\n", temp->thing.time); printf("------------------------------------------------------------\n"); printf("\n"); temp = temp->next; //这句不能忘!!! } }
时间: 2023-08-25 07:12:34 浏览: 60
这是一个遍历链表并输出链表内容的函数,参数是一个指向结构体MyList的指针L,表示要遍历的链表。
函数中首先定义了一个指向结构体MyList的指针temp,将其初始化为L指向的结构体的next成员,即链表的第一个节点。然后使用while循环遍历整个链表,当temp指向的节点不为空时循环继续。在循环体内,使用printf函数输出节点中的各个成员变量的值,从而输出链表中每个节点的内容。最后将temp指向下一个节点,继续循环直到遍历完整个链表。
注意,最后需要使用temp = temp->next语句将temp指向下一个节点,否则会陷入死循环。
相关问题
struct MyList { fee thing; struct MyList *next; }; int InitList(struct MyList *L); int InsertList(struct MyList *L, fee e); void FinderList(struct MyList *L); int SearchList(struct MyList *L, char variable, char temp_find); int ReplacedList(struct MyList *L, int i, char* num, char* into, char* name, char* cause, char* money, char* people, char* time); int DeleteList(struct MyList *L, int i); int ClearList(struct MyList *L);
这段代码定义了一个链表结构体MyList,包含了两个成员:thing和next。其中thing是一个结构体变量,用来存储班费信息,next是一个指向下一个链表结构体的指针。除此之外,代码中还定义了若干个函数,包括:
1. InitList:初始化链表,将链表中的所有元素清空。
2. InsertList:在链表中插入一个元素。
3. FinderList:查找链表中的元素。
4. SearchList:根据班费信息的某个字段,在链表中查找符合条件的元素。
5. ReplacedList:替换链表中的某个元素。
6. DeleteList:删除链表中的某个元素。
7. ClearList:清空整个链表。
这些函数实现了链表的基本操作,可以用来对班费信息进行增删改查等操作。需要注意的是,代码中的函数参数有些简略,具体实现需要参考函数体中的代码。
oid FinderList(struct MyList *L) { struct MyList *temp = L->next; while (temp != NULL) { printf("\n"); printf("------------------------------------------------------------\n"); printf(" 班费收支编号为: %s\n", temp->thing.num); printf(" 收入和还是支出: %s\n", temp->thing.into); printf(" 经办人是: %s\n", temp->thing.name); printf(" 收费原因为: %s\n", temp->thing.cause); printf(" 收费金额为: %s\n", temp->thing.money); printf(" 收费的总人数为: %s\n", temp->thing.people); printf(" 收费的日期为: %s\n", temp->thing.time); printf("------------------------------------------------------------\n"); printf("\n"); temp = temp->next;
这段代码定义了一个名为FinderList的函数,其作用是遍历链表L并打印链表中的每个节点的数据。具体来说:
- 函数不返回任何值,即返回类型为void。
- 函数接受一个指向链表头的指针L。
- 首先定义了一个指针变量temp,指向链表头的下一个节点。
- 然后进入while循环,只要temp不为NULL,就执行循环体中的语句。
- 在循环体中,先打印一些分割线和节点的各个字段,例如班费收支编号、收入和还是支出、经办人、收费原因、收费金额等等。
- 最后将temp指向下一个节点,继续遍历,直到temp为NULL,退出循环。
阅读全文