链表的创造(我的困难主要在这)
来源:互联网 发布:新版mac mini 发布时间 编辑:程序博客网 时间:2024/05/17 04:58
在这两天的学习中主要是对链表的创造这块有些费解,而网上的大多数代码都是一笔带过,真是看了还不如不看。最终博主看了网上一位大牛的博客然后顿悟了。
主要是在指针那块。
#include <iostream>
#include <cstdio>
#include <cstdlib>
#define ERROR 0
using namespace std;
typedef struct student{
int num;
float score;
struct student *next;
}node,*Linklist;
int n;//节点总数
/*创建链表*/
Linklist create(){
Linklist head;
Linklist p1;
Linklist p2;
n = 0;
p1=(Linklist )malloc(sizeof(node));
p2=p1;//将p1赋予p2;
if(p1 == NULL){
return NULL;
}
else{
head=NULL;
cin>>p1->num>>p1->score;
}
while(p1->num!=0){
n+=1;
if(n==1){
head = p1;//头指针为head
p2->next = NULL;//之前已经将p1赋予p2,所以可以理解为p1->next
}
else{
p2->next = p1;//此处是p2的next指针指向p1
}
p2 = p1;/*将p1赋予p2,下面会重新分配内存,因为p2的next会指向p1。相当于
上一个p1的next指向了下一个p1*/
p1 = (Linklist)malloc(sizeof(node));
cin>>p1->num>>p1->score;
}
p2->next = NULL;
free(p1);
p1 = NULL;
return head;
}
void printfstudent(Linklist head){
Linklist p;
p=head;
if(head!=NULL){
while(p!=NULL){
cout<<p->num<<" "<<p->score<<endl;
p=p->next;
}
}
}
int main()
{
Linklist head;
head = create();
printfstudent(head);
return 0;
}
- 链表的创造(我的困难主要在这)
- 我最困难的时光
- 困难 困难 哎 我的软件人生啊
- 我的职业生涯(3)----- 又面临困难的选择
- 2014年地方网站将面临的主要困难
- 我的天,远程沟通真心困难
- 我在使用admob 时遇到的困难和最后解决的办法
- 永远记住那些在困难的时候真诚帮助过我的人
- 我的主要个人信息
- [转贴]我对创造人工智能的想法
- 我现在能够进行的创造
- 面向对象的编程就是在创造世界(一)
- 面向对象的编程就是在创造世界(一)
- 面向对象的编程就是在创造世界(三)
- 一个在家乡创业者的崎岖困难
- 困难的串- -(回溯)
- 我不怕未知的困难,我只怕身边没有你
- 我主要的文章在sunshine.qzone.qq.com上
- 利用MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件
- Java方法中的参数传递方式
- linux oracle修改最大连接数
- HDU 3729 I'm Telling the Truth
- hdu 1700 Points on Cycle(几何)(中等)
- 链表的创造(我的困难主要在这)
- Class 类的用法
- 15/8/3/网络连接,UDP,DOM,SAX,JSON
- 逆序的BSF输出
- QDBus与gdbus的数据传递详解
- HDU 1021 Fibonacci Again
- Delphi7第八天---小型图书管理系统
- 项目分析(2)
- 递归 N皇后问题