| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 382 人关注过本帖
标题:求解释!!! 每个步骤的清晰解释
只看楼主 加入收藏
人士online
Rank: 1
等 级:新手上路
帖 子:22
专家分:4
注 册:2010-8-21
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
求解释!!! 每个步骤的清晰解释
# include "stdafx.h"
# include<iostream>
#include<conio.h>

using namespace std;

int len;
class node
{
    struct Snode
   {
      int data;
      struct Snode *next;
   }S,*head;
public:
   
   void create();
   void search();
   void delnode();
}L;
void node::create()
{
   int n;
   struct Snode *p,*q;
   head=(Snode *)malloc(sizeof(S));
   head->next=NULL;
   q=head;
   cout<<"要建立链表的大小为:";
   cin>>n;
   len=n;
   cout<<"请依次输入链表元素:";
   for(int i=0;i<n;i++)
   {
       p=(Snode *)malloc(sizeof(S));
       cin>>p->data;
       p->next=NULL;
       p->next=q->next;
       q->next=p;
       q=p;
   }
   cout<<"建立成功,按任意键返回";
   getch();
}
void node::search()
{  
   int n;
   cout<<"请输入要查找元素的位置:";
   cin>>n;
   struct Snode *p;
   p=head;
   if(n<0||n>len-1)
       cout<<"超出链表长度";
   else
   {
       while(n--)
       {
          p=p->next;
       }
       cout<<"所查找的元素为:"<<p->data;
       cout<<"请按任意键返回";
       getch();
   }
}
void node::delnode()
{
   int i=1;
   int n;
   struct Snode *q,*p;
   p=head;
   cout<<"请输入要删除元素的位置:";
   cin>>n;
   if(n<0||n>len-1)
      cout<<"超出链表长度";
   else
   {
      while(i!=n)
      {
         i++;
         p=p->next;
      }
      q=p->next;
      p->next=q->next;
      cout<<"删除成功";
      cout<<"按任意键返回";
      getch();
   }
}
int main()
{
  int n;
  while(1)
  {
     cout<<"1.创建链表"<<endl;
     cout<<"2.查找元素"<<endl;
     cout<<"3.删除元素"<<endl;
     cout<<"4.结束操作"<<endl;
     cout<<"请选择要执行的操作:";
     cin>>n;
     switch(n)
     {
        case 1:L.create();break;
        case 2:L.search();break;
         case 3:L.delnode();break;
        case 4:return 0;
     }
     system("cls");
  }
  return 0;
}
搜索更多相关主题的帖子: 解释 
2010-10-18 18:06
功夫熊猫
Rank: 2
等 级:论坛游民
帖 子:54
专家分:30
注 册:2010-7-14
收藏
得分:7 
p=(Snode *)malloc(sizeof(S));//开辟一个S大小的空间,p指向这个空间
       cin>>p->data;//输入p->data的值
       p->next=NULL;//p的下一个指空
       p->next=q->next;//p的下一个指向表头q的下一个(头插入法)
       q->next=p;//头结点指向p
       q=p;//把q移到p的位置
我觉得这个地方好像最难理解。。。
2010-10-18 18:57
system3288
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:140
注 册:2010-10-9
收藏
得分:7 
链表好难懂的哦,卡了好久了,就是搞不懂,谁有什么办法可以让链表变得通俗易懂不列?
2010-10-18 19:14
快速回复:求解释!!! 每个步骤的清晰解释
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012651 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved