单链表前插法:
算法步骤:1.创建一个只有头结点的单链表。
2.根据待创建链表包括的元素个数n,循环n次执行以下操作:
生成新的结点;输入元素值赋给新结点*p的数据区域;将新的结点*p插入到头节点之 后;
相关代码如下:
#include<stdio.h>
struct stu{
int num;
float score;
struct stu *next;
};
struct stu a, b, c,*head;
void qian(){
a.num =1;
a.score = 89;
b.num = 2 ;
b.score = 98;
c.num = 3;
c.score = 99;
head=NULL;
a.next=head;
head=&a;
b.next=head;
head=&b;
c.next=head;
head=&c;
do{
printf("student number: %d score:%f\n",head->num, head->score);
head = head->next; //head->next = head
}while(head);
}
int main(){
qian();
return 0;
}
单链表后插法:
1.创建一个只有头结点的空链表;
2.尾指针r初始化,指向头节点;
3根据创建链表包括的元素个数n,循环n次执行以下操作:
生成一个新结点*p;
输入元素值赋给新结点*p的指针域;
将新结点*p插入到尾结点*r之后;
尾指针r指向新的尾结点*p;
相关代码如下:
#include<stdio.h> struct stu{ int num; float score; struct stu *next; }; struct stu a, b, c,*head; void qian(){ a.num =1; a.score = 89; b.num = 2 ; b.score = 98; c.num = 3; c.score = 99; head=&a; a.next=&b; b.next=&c; c.next=NULL; do{ printf("student number: %d score:%f\n",head->num, head->score); head = head->next; //head->next = head }while(head); } int main(){ qian(); return 0; }