C++链表,代码看得懂,可是不知道链表,节点,结点,表头指针等等这些东西到底是指什么?

u010404041 2013-04-27 03:36:47
#include "iostream.h"

struct node
{
char data;
node *next;
};

node * create();
void showList(node *head);

node * create()
{
node *head=NULL;
node *pEnd=head;
node *pS;
char temp;
cout <<"Please input a string end with '#':" <<endl;
do
{
cin >>temp;
if (temp!='#')
{
pS=new node;
pS->data=temp;
pS->next=NULL;
if (head==NULL)
{
head=pS;
}
else
{
pEnd->next=pS;
}
pEnd=pS;
}
}
while (temp!='#');
return head;
}

void showList(node *head)
{
node *pRead=head;
cout <<"The data of the link list are:" <<endl;
while (pRead!=NULL)
{
cout <<pRead->data;
pRead=pRead->next;
}
cout <<endl;
}

int main()
{
node *head;
head=create();
showList(head);
return 0;
}


请好心的朋友帮我详细解解何为链表,在网络上看了很多,有的比喻成单车链,可是就是看不懂到底是啥意思?什么节点,结点,链表,表头指针,表尾指针,太多名词了,想麻烦各位大大帮我说下这些名词对应代码中那些部位?代码我看得懂。谢谢各位大大
...全文
376 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhcosin 2013-04-27
  • 打赏
  • 举报
回复
那你还说看得懂?
kakashi0309 2013-04-27
  • 打赏
  • 举报
回复
代码能看懂 不至于那些基本概念不清楚吧 数组你应该知道吧 链表与它的不同就在于不是连续的内存存储 每个节点都是malloc分配的内存空间,之间通过指针来连接的 表头指针就类似与数组的首地址
diaolingle 2013-04-27
  • 打赏
  • 举报
回复
自己画个图就知道了
Aist-memory 2013-04-27
  • 打赏
  • 举报
回复
node只看这些名词也能对的上吗
starytx 2013-04-27
  • 打赏
  • 举报
回复
引用 3 楼 u010404041 的回复:
我也不知道啊,神马情况啊,唉~我书上有很多处的代码都看得懂,但是一些数学公式,名词,描述问题完全看不懂,不知道说的是什么,就看得懂代码而已。
不要钻名词的牛角尖,这样的话你什么也没法学
onlyhuiyi 2013-04-27
  • 打赏
  • 举报
回复
引用 3 楼 u010404041 的回复:
我也不知道啊,神马情况啊,唉~我书上有很多处的代码都看得懂,但是一些数学公式,名词,描述问题完全看不懂,不知道说的是什么,就看得懂代码而已。
那说明代码你还是没有看懂。。
u010404041 2013-04-27
  • 打赏
  • 举报
回复
我也不知道啊,神马情况啊,唉~我书上有很多处的代码都看得懂,但是一些数学公式,名词,描述问题完全看不懂,不知道说的是什么,就看得懂代码而已。
小湿哥 2013-04-27
  • 打赏
  • 举报
回复
struct node { char data; node *next;}; node A,B,C,D,E,F,G; node *head; head = &A; // head头指针 A.next = &B; B.next = &C; C.next = &D; D.next = &E; E.next = &F; F.next = &G; F.next = NULL; //结尾指针为空 ABCDEFG,就是这个链表的各个节点。 我不知道你想问什么,你说你代码都看得懂,为什么还会纠结与这些名词? 这种东西好好看书就行了。
starytx 2013-04-27
  • 打赏
  • 举报
回复
老师领着一群小朋友玩老鹰捉小鸡的游戏。不说老鹰了,就说小鸡方,假设每个人左手拉着前一个人的右手,这样的话,老师的左手就是空的,最后一个小朋友的右手也是空的。老师就相当于头结点,每个人的右手拉着下一个人(也就是指向下一个人),一般需要记录头结点的地址,也就是一个指针,它保存着头结点,有了头结点就可以通过右手(node *next;)找到下一个,直到遇见右手是空的尾节点。

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧