zoukankan      html  css  js  c++  java
  • 链表,结构体,指针,CG作业. 倒数第k个元素,已知带头结点的非空单链表中存放着若干整数,请找出该链表中倒数第k个元素

    CG题总是喜欢让我们填一个空==

    先写着,等我熟练了再来整理

     1 #include  <iostream>
     2 using  namespace  std;
     3 struct  Node  {
     4         int  data;
     5         Node  *next;
     6 };
     7 typedef  Node  *LinkList;
     8 void  createList(LinkList  &L,int  n)  {
     9         Node  *p,*r;
    10         L=new  Node;
    11         L->next=NULL;
    12         r=L;
    13         for(int  i=1;  i<=n;  i++)  {
    14                 p=new  Node;
    15                 cin>>p->data;
    16                 r->next=p;
    17                 r=p;
    18         }
    19         r->next=NULL;
    20 }
    21 void  printList(LinkList  L)  {
    22         Node  *p;
    23         p=L->next;
    24         while(p)  {
    25                 cout<<p->data<<"  ";
    26                 p=p->next;
    27         }
    28         cout<<endl;
    29 }
    //CG里就只让我写了这一小段
    30 Node * getElem(LinkList &L,int k){ 31 //求表长 32 Node *p; 33 p=L->next; 34 int M=0; 35 while(p!=NULL){ 36 M++; 37 p=p->next; 38 } 39 if(k>M)return NULL; 40 else{int i=1; 41 p=L->next; 42 while(p!=NULL&&i<=(M-k)){ 43 p=p->next; 44 i++;//cout<<"*"; 45 } 46 47 return p; 48 } 49 } 50 //到这是一个分界线========================================== 51 int main() { 52 LinkList L; 53 int m,k; 54 cin>>m;//单链表中元素个数 55 createList(L,m);//尾插入法创建带头节点的单链表 56 cin>>k; 57 Node *p=getElem(L,k);//找单链表中倒数第k个元素 58 if(p) 59 cout<<p->data; 60 else 61 cout<<"no"; 62 return 0; 63 }
  • 相关阅读:
    毕业面试试题汇总
    js获取系统日期
    非常酷的3D翻转相册展示特效
    CSS 替换元素和非替换元素 行内非替换元素
    怎样在linux下编写C程序并编译执行
    库和框架的区别
    转载:em(倍)与px的区别
    RPMForge介绍及安装
    linux下安装jdk和配置环境变量
    PCI PCI-X PCI-E介绍
  • 原文地址:https://www.cnblogs.com/ahijing/p/12544080.html
Copyright © 2011-2022 走看看