码迷,mamicode.com
首页 > 其他好文 > 详细

2016 7 25 链表

时间:2016-10-22 14:39:22      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:stdio.h   scan   struct   长度   例子   str   can   using   ret   

#include<stdio.h>
#include<stdlib.h>

/*
usingnamespacestd;
 
structNode
{
  int  data;//数据域
  struct Node*next;//指针域
};
 
/*
Create
*函数功能:创建链表.
*输入:各节点的data
*返回值:指针head
*//*
Node*Create()
{
  int  n=0;
  Node*head,*p1,*p2;
  p1=p2=new Node;
  cin>>p1->data;
  head=NULL;
while(p1->data!=0)
{
    if(n==0)
   {
     head=p1;
   }
   else
    p2->next=p1;
    p2=p1;
    p1=new Node;
    cin>>p1->data;
    n++;
}
    p2->next=NULL;
    return head;
}
 
/*
insert
*函数功能:在链表中插入元素.
*输入:head链表头指针,p新元素插入位置,x新元素中的数据域内容
*返回值:无

void insert(Node*head,int p,int x)
{
   Node*tmp=head;//for循环是为了防止插入位置超出了链表长度
   for(inti=0;i<p;i++)
   {
     if(tmp==NULL)
     return -1;
     if(i<p-1)
     tmp=tmp->next;
    }
    Node*tmp2=new Node;
      tmp2->data=x;
      tmp2->next=tmp->next;
      tmp->next=tmp2;
}
 */
/*
del
*函数功能:删除链表中的元素
*输入:head链表头指针,p被删除元素位置
*返回值:被删除元素中的数据域.如果删除失败返回-1

intdel(Node*head,int p)
{
   Node*tmp=head;
   for(inti=0;i<p;i++)
   {
      if(tmp==NULL)
      return -1;
      if(i<p-1)
        tmp=tmp->next;
}
   int ret=tmp->next->data;
   tmp->next=tmp->next->next;
   return ret;
}
 
void print(Node*head)
{
    for(Node*tmp=head;tmp!=NULL;tmp=tmp->next)
      printf("%d",tmp->data);
      printf("\n");
}
 
int main()
{
  Node*head;
  head=newNode;
  head->data=-1;
  head->next=NULL;
  return 0;
}
*/
//例子
#include<iostream>
//#define NULL 0
struct student
{
   long num;
   struct student*next;
};

int main()
{
   int i,n;
   student*p=(struct student*)malloc(sizeof(struct  student));
   student*q=p;
   printf("输入几个值");
   scanf("%d",&n); 
   for(i=1;i<=n;i++)
   {
     scanf("%d",&(q->num));
     q->next=(struct student*)malloc(sizeof(struct student));
     q=q->next;
    }
     printf("值第几个");
     int rank;
     scanf("%d%d",&(q->num),&rank);
     student*w=p;
     for(i=1;i<rank-1;i++)
     {
        w=w->next;
    }
    q->next=w->next;
    w->next=q;
    for(i=1;i<=n+1;i++)
    {
      printf("%d",p->num);
      p=p->next;
    }
    return 0;
}//指针后移麻烦链表形式循环链表  */

2016 7 25 链表

标签:stdio.h   scan   struct   长度   例子   str   can   using   ret   

原文地址:http://www.cnblogs.com/sysu-eeman-yang/p/5987505.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!