无表头单链表的总结----输出链表

#include"head.h"
void print(struct Student* head)
{
    struct Student *p;
    printf("There are %d records:\n", sum);
    p = head;
    if (p != NULL)
    {
        do
        {
            printf("%ld %d\n", p->num, p->score);
            p = p->next;
        } while (p != NULL);   //以链表结尾的NULL为终止条件
    }
}
时间: 2024-10-13 11:21:22

无表头单链表的总结----输出链表的相关文章

26、输入一个链表,反转链表后,输出链表的所有元素。

输入一个链表,反转链表后,输出链表的所有元素. 思路:  ListNode next = null;//用来保存待反序的第一个节点(head 和 next节点) ListNode pre = null;//用来保存已经反序的第一个结点 next = head.next;//首先记录当前节点的下一个节点,(保存起来) //先用next保存head的下一个节点的信息,保证单链表不会因为失去head节点的原next节点而就此断裂 head.next = pre;//让当前节点指向前一个节点,因为要反序

通过结构体,建立动态链表,并输出链表

/***************** * 通过结构体,建立动态链表,并输出链表. * *******************/ #include<stdio.h> #include<malloc.h> #include<stdlib.h> #define LEN sizeof(struct student)  //宏定义 将LEN 替换为student 结构体的大小数值 struct student *create();  //声明创建新链表(节点)(结构体)函数,返回

建立链表,并输出链表

1 #include <stdio.h> 2 #include <stdlib.h> 3 struct node //结点 4 { 5 int data; 6 struct node *next; 7 }; 8 int main() 9 { 10 struct node *head,*p,*q,*t; 11 int i,n,a; 12 scanf("%d",&n); 13 head=NULL; 14 for(i=0;i<n;i++){ 15 p=(

无表头单链表的总结----两个链表合并

#include"head.h" struct Student* insert(struct Student*ahead, struct Student*bhead) { struct Student *pa1, *pa2, *pb1, *pb2; pa1 = pa2 = ahead; pb1 = pb2 = bhead; if ((ahead != NULL)&&(bhead != NULL)) { do { while ((pb1->num > pa1-

无表头单链表的总结----增加节点(原链表为有序的链表)

1 #include"head.h" 2 struct Student* insert(struct Student*head, struct Student*addinfo) 3 { 4 struct Student *p0, *p1, *p2; //开辟三个结构体指针 5 p2=p1 = head; //头指针赋给p1,p2 6 p0 = addinfo; //把 增加信息的指针赋给p0,习惯不用原来指针 7 if (head == NULL) 8 { 9 head = p0 //

无表头单链表的总结----如何将已经初始化的结构体数组加入链表关系

1 struct Student 2 { 3 char ID[N_ID]; 4 char name[N_name]; 5 struct Student *next; 6 }alist[LEN_A],blist[LEN_B]; 7 ////以上是结构体 8 //初始化 9 struct Student alist[LEN_A] = { {"101","Wang"} ,{"102","Li"},{"105",&

无表头单链表的总结----动态建立链表

1 #include "head.h" 2 struct Student *creat() 3 { 4 struct Student *head, *p1, *p2;// 先开辟三个结构体指针,*head,(作为返回的头指针) 5 p1 = p2 =(struct Student *) malloc(LEN); 6 scanf_s("%s %f", p1->num, N, &p1->score);//先读取输入的信息,据读入的信息进行判断 7 h

无表头单链表的总结----删除节点

1 #include "head.h" 2 struct Student*del(struct Student*head,char num[N]) 3 { 4 struct Student*p1, *p2; 5 if (head == NULL) //若链表为空,则无需处理 6 { 7 printf("\nlist NULL!\n"); 8 return (head); 9 } 10 p2 = p1 = head; 11 while (strcmp(num, p1-

无表头单链表的总结----从链表中删除某一个年纪的的节点

1 #include "head.h" 2 struct Student *del_same_age(struct Student*head, int age) 3 { 4 struct Student *p, *pt; int find = 0; 5 p = pt = head; 6 while (p != NULL)//当循环到最后一个节点时 7 { 8 9 if (p->stu_age == age)//如果相等 10 { 11 find++; //说明找到了 12 if