我的第一个结构链表
来源:互联网 发布:印度国产航母 知乎 编辑:程序博客网 时间:2024/05/28 16:21
我的第一个结构链表
这天上午,我准备学链表,最简单的单链,然后我打开教材,用眼睛扫了一遍。恩,在脑子里印像最深的,就是要完成链表,需要三个指针,一个带指向自己针指的结构。就是下面这样
struct temp
...{
int a;
temp *next;
};
哦,就是这样。其它的有印像也是很模糊的。想不起来有什么具体内容。我的学习过程可能比较奇怪,因为我喜欢自己解决问题。所以我就放下了教材,把毛巾盖在脸上。闭上眼睛。
在头脑里形成这样的概念。什么是链表呢?以前听说过,这东西就是动态分配内存中的结构一个联一个,用结构中的那个指针指向下一个结构。
怎么完成呢,我有三个指针。第一步,我需要有一个指针建第一个结构,如下:
jianlian=new temp;
然后我需要再建第二个结构,用第二个指针?哦不不不,想起来点了,好像只用一个指针建新的结构。那我怎么办呢?把第二个指针指向建好的这个。
genban=jianlian;
下面用第一个指针建第二个:
jianlian=new temp;
下面我们要做什么了呢,对了,把第一个和第二个结构联起来
genban->next=jianlian;
哈!
让第一个结构里的指针元素来联上第二个!我觉得我要成功一大半了。
好像可以建第三个了
jianlian=new temp?
哦,不不不,不是这样。如果是这样我们怎么访问这第三个结构呢,怎么给这东西赋值?难道用这个?
genban->next->next.......next..
哦,不,我不希望这样,这样手动打字会很累的,我们需要的是循环控制,我们怎么办呢
恩,我们需要把genban弄过来,genban=jianlian;
然后新建结构哈 jianlian=new temp;
然后再把第二个的genban->next指向新的,嘿嘿,成了
呃。。好像不对。。书上说用三个指针。。我怎么用了两个呢。。难道俺是天才?
不管了,写程序去。拿开脸上的毛巾,开始编。。
#include <iostream>
using namespace std;
struct lian
...{
int number;
string name;
lian *next;
};
lian *head;
lian jianlian()
...{
lian *ls;
lian *le;
ls=new lian;
cout <<"请输入编号和名字:";
cin>>ls->number>>ls->name;
while ((ls->name=="null")==0)
...{
if (head==NULL)
...{
head=ls;
}
else
...{
le->next=ls;
}
le=ls;
ls=new lian;
cin >>ls->number>>ls->name;
}
le->next=NULL;
delete ls;
return 0;
}
呃。。遇到困难了。。我怎么用这个链呢。。两个手指针一个在前建一个在后跟着。。哪以前的我怎么找。。
这不是熊瞎子掰包玉,掰一个丢一个吗。。最开始的哪个哪里去了。
啊,三个指针,哈哈,原来如此!!有一个指针是指向第一个结构的,哈哈
重写!
#include <iostream>
using namespace std;
struct lian
...{
int number;
string name;
lian *next;
};
lian *head;
lian *jianlian()
...{
lian *ls;
lian *le;
ls=new lian;
cout <<"请输入编号和名字:";
cin>>ls->number>>ls->name;
head=NULL;
while ((ls->name=="null")==0)
...{
if (head==NULL)
...{
head=ls;
}
else
...{
le->next=ls;
}
le=ls;
ls=new lian;
cin >>ls->number>>ls->name;
}
le->next=NULL;
delete ls;
return head;
}
void print(lian *head)
...{
while(head->next!=NULL)
...{
cout <<head->number<<" "<<head->name<<endl;
head=head->next;
}
}
int main()
...{
print(jianlian());
return 0;
}
这天上午,我准备学链表,最简单的单链,然后我打开教材,用眼睛扫了一遍。恩,在脑子里印像最深的,就是要完成链表,需要三个指针,一个带指向自己针指的结构。就是下面这样
struct temp
...{
int a;
temp *next;
};
哦,就是这样。其它的有印像也是很模糊的。想不起来有什么具体内容。我的学习过程可能比较奇怪,因为我喜欢自己解决问题。所以我就放下了教材,把毛巾盖在脸上。闭上眼睛。
在头脑里形成这样的概念。什么是链表呢?以前听说过,这东西就是动态分配内存中的结构一个联一个,用结构中的那个指针指向下一个结构。
怎么完成呢,我有三个指针。第一步,我需要有一个指针建第一个结构,如下:
jianlian=new temp;
然后我需要再建第二个结构,用第二个指针?哦不不不,想起来点了,好像只用一个指针建新的结构。那我怎么办呢?把第二个指针指向建好的这个。
genban=jianlian;
下面用第一个指针建第二个:
jianlian=new temp;
下面我们要做什么了呢,对了,把第一个和第二个结构联起来
genban->next=jianlian;
哈!
让第一个结构里的指针元素来联上第二个!我觉得我要成功一大半了。
好像可以建第三个了
jianlian=new temp?
哦,不不不,不是这样。如果是这样我们怎么访问这第三个结构呢,怎么给这东西赋值?难道用这个?
genban->next->next.......next..
哦,不,我不希望这样,这样手动打字会很累的,我们需要的是循环控制,我们怎么办呢
恩,我们需要把genban弄过来,genban=jianlian;
然后新建结构哈 jianlian=new temp;
然后再把第二个的genban->next指向新的,嘿嘿,成了
呃。。好像不对。。书上说用三个指针。。我怎么用了两个呢。。难道俺是天才?
不管了,写程序去。拿开脸上的毛巾,开始编。。
#include <iostream>
using namespace std;
struct lian
...{
int number;
string name;
lian *next;
};
lian *head;
lian jianlian()
...{
lian *ls;
lian *le;
ls=new lian;
cout <<"请输入编号和名字:";
cin>>ls->number>>ls->name;
while ((ls->name=="null")==0)
...{
if (head==NULL)
...{
head=ls;
}
else
...{
le->next=ls;
}
le=ls;
ls=new lian;
cin >>ls->number>>ls->name;
}
le->next=NULL;
delete ls;
return 0;
}
呃。。遇到困难了。。我怎么用这个链呢。。两个手指针一个在前建一个在后跟着。。哪以前的我怎么找。。
这不是熊瞎子掰包玉,掰一个丢一个吗。。最开始的哪个哪里去了。
啊,三个指针,哈哈,原来如此!!有一个指针是指向第一个结构的,哈哈
重写!
#include <iostream>
using namespace std;
struct lian
...{
int number;
string name;
lian *next;
};
lian *head;
lian *jianlian()
...{
lian *ls;
lian *le;
ls=new lian;
cout <<"请输入编号和名字:";
cin>>ls->number>>ls->name;
head=NULL;
while ((ls->name=="null")==0)
...{
if (head==NULL)
...{
head=ls;
}
else
...{
le->next=ls;
}
le=ls;
ls=new lian;
cin >>ls->number>>ls->name;
}
le->next=NULL;
delete ls;
return head;
}
void print(lian *head)
...{
while(head->next!=NULL)
...{
cout <<head->number<<" "<<head->name<<endl;
head=head->next;
}
}
int main()
...{
print(jianlian());
return 0;
}
- 我的第一个结构链表
- 我的第一个
- 我的第一个
- 我的第一个Blog!
- 我的第一个blog
- 我的第一个Robocode
- 我的第一个GMaiL
- 我的第一个BLOG
- 我的第一个HelloWorld
- 我的第一个文章
- 我的第一个BLOG
- 我的第一个BLOG
- 我的第一个网站
- 我的第一个blog! :-)
- 我的第一个文章
- 我的第一个blog!
- 我的第一个blog
- 我的第一个Blog
- ATM银行取款机模拟程序(可连接数据库)
- SQL Server数据库Java驱动jTDS发布1.1版本
- Java泛型编程快速入门
- WebObjects:苹果的Java web框架将开放源码
- JavaOne第一天:Sun推出品牌笔记本 开发工具支持AJAX
- 我的第一个结构链表
- 内存数据库StelsEngine发布1.2版本
- Java界面框架SwingWT发布0.87版
- 选择system bus还是session bus?
- Oracle将成为EJB3规范领导 负责实现entity bean
- 用TikeSwing框架开发Java应用的表现层程序
- Sun将推Java新标准 重写XML紧密集成.NET
- Sun对Java语言安全性与功能做出重大改进
- Java反编译的研究