数据结构——4 单链表查找中间节点

来源:互联网 发布:淘宝助理最新版 编辑:程序博客网 时间:2024/05/17 14:28

单链表——查找中间节点

单链表中间结点查找

#include<iostream>using namespace std;struct node       //node结构体,里面有一个node指针,用来指向下一个node对象{int x;node *next;   //指向什么类型的对象,就用什么类型的指针};node* create(int n)         //创建链表,参数n表示结点的个数,返回类型是结点指针node*{node *head=new node;    //建立头结点node *p=head;           //创建用于往后指的node指针for(int i=0;i<n;i++){node *temp=new node;     //new一个node指针temp->x=rand()%100;p->next=temp;            //将p的next指向创建的temp,把新节点连接到链表后面p=temp;                  //将p指向新结点temp,即p移动到下一个节点}p->next=NULL;                    //创建完成后,p->next指向NULLreturn head;}void display(node *head)             //输出链表{node *p;p=head->next;                //p重新指向头结点后的那个结点,即for循环创建的第一个结点if(p==NULL)cout<<"NULL List";while(p!=NULL)               //输出{cout<<p->x<<"  ";p=p->next;}cout<<endl;}node* search(node *head){node *p,*s;            //定义node指针变量p=s=head->next;        //p和s都指向第一个结点while(p->next && p->next->next)       //p后面第一个和第二个结点不为NULL{s=s->next;                    //s移动到下一个结点p=p->next->next;              //p指向下一个的下一个结点}return s;             //返回node指针s}int main(){node *list; list=create(15);           //建立链表display(list);             //输出显示建立的链表cout<<search(list)->x<<endl;   //输出找到的中间结点的x值return 0;}


0 0
原创粉丝点击