链表

单链表又叫线性链表或单向链表。它是线性表的来链接储存表示。使用单链表储存结构时,其数据元素只存在逻辑联系而不存在物理联系,能够很好的解决数据溢出问题。单链表中的每个数据都储存在链表节点中,每个节点结构体中有两个储存域:数据域和指针域。其中,数据域中储存链表节点的数据元素,指针域储存了指向该链表节点的下一个节点的指针。

链表结构体如下所示:

typedef struct node{      
int data;
struct node *next;
}*List; //*List代表将结构体中的指针类型


单链表的创建及输出代码如下:

#include<iostream>
using namespace std;
typedef struct node{
int data; //数据域
struct node *next; //指针域
}node; //链表结构体的定义

struct node *Create() //链表创建函数
{
struct node *head,*p,*tail;
cout<<"请输入链表数据,以0结束!!!"<<endl;
head=p=tail=new node;
cin>>p->data;

while(p->data!=0)
{
tail->next=p;
tail=p;

p=new node;
cin>>p->data;
}
tail->next=NULL;
cout<<"链表创建完毕!!!"<<endl;
return head; //返回链表头指针
}

void Show(node *head) //链表输出函数
{
node *p;
p=head;
while(p)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
cout<<"链表输出完毕!!!"<<endl;
}

int main()
{
struct node *head;
head=Create();
Show(head);
return 0;
}

========================================================================

这篇博客中的代码是我在大一的时候写的,现在两年过去了,我想就这篇博客来分享一下我的想法:

一般来说,新生的课程设计都会以学生管理系统作为题目,但是在学习完学校的课程之后,我对于c/c++相关知识还是懵懵懂懂,实在不知道如何完成这个作业。经过一段时间的摸索,我实现了链表的创建,之后的几天就一步步的完善自己的程序,终于完成了作业。这个过程我不断的查漏补缺,也是这个作业,让我对编程的兴趣更加浓厚,之后的学习生活中,我更加的有兴趣,也更积极的学习编程。正因为如此,我仅仅上传了链表的创建部分,并没有将管理系统上传,希望你们可以自己完成下面的部分。

反观那些从网上搜索作业,然后直接上交的同学,虽然他们有的欺骗了老师,拿到了高分,但是他们在之后也迷失了自我,之后再写作业也是上网搜索,完全没有学习的欲望,反正结果都是一样,甚至上交的作业比认真做的同学得到的分数更高,整个大学生活就这样浑浑噩噩的过去了。所以我想在这啰嗦几句,如果有人看到了这些,请你尽可能的充实自己,不要随波逐流,相信你自己,一定能够成为一个优秀的程序员,加油!!!