C++链表,看不懂,请高人指点迷津,我看得懂代码,却不知道何为链表,何为节点等等,该怎么办

Google最好搜索 发布于 2013/04/27 15:31
阅读 591
收藏 1

C++链表的代码我看得懂,但是我不知道为什么叫链表,和普通的程序又有什么区别? 几个不懂的想问问大家

什么是节点,什么是结点,什么是表头指针,什么是表尾 

是的,我对链表真的几乎完全无法理解,但是我看得懂下列代码,就是不知道这些名词到底指的是什么?不知道为什么会这样?请朋友们指点指点。万分感激。 麻烦各位说说上述的名词对应下列代码中的那部分?我真的看不懂这些名词。

#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;
}


加载中
0
中山野鬼
中山野鬼
去看数据结构。。。编程语言是个实现工具,和具体要实现的逻辑原理没有关系。。。。除非你折腾编译器。哈。
中山野鬼
中山野鬼
回复 @retc : 这个程序干什么的,就叫什么。哈。。否则起名字不准。。
Google最好搜索
Google最好搜索
我在VC++中单步调试,我也看的懂这个程序的运行原理,但是我真不知道为什么这个程序就叫链表的呢 ??很困惑。这位高手,能否详解下,让新手少走几步弯路。
0
子矜
子矜
你应该先学数据结构。
0
Railgun
Railgun

你可以理解链表就是数组。

你看到的这段代码就是在解释数组是怎么工作的。

0
souldepth
souldepth

数据结构是C/C++  的基础。

0
陈舵主
陈舵主
小时候玩过老鹰捉小鸡没?表头就是保护小鸡的母鸡,表尾就是最后一个小孩,节点就是每一个人,指向自身的节点指针( node *next)就是他们的背后衣服
IdleMan
IdleMan
有意思
0
Jimagic
Jimagic

顺序结构:前后关系 数组:各结点内存地址相邻 链表:各结点不相邻 这样遍历的时候就有问题了 所以链表每个结点有个指向下一个结点的指针

表头结点是结点(new 出来的,data+next*) 表头指针是指向表头结点的指针(node*,只是一个地址) 如果没有表头指针 那程序怎么来访问链表呢 链表也可以循环 也就是最后结点的next指向头结点

想象一下这些代码运行时候在内存里会怎么样

返回顶部
顶部