zoukankan      html  css  js  c++  java
  • 链表的整表的创建

    /这里是链表的创建其包含的是头指针phead,头节点,以及尾节点p->next = NULL 为链表创建结束标志。

    /判断指针为空十分重要,当然也不能忘了释放,代码是:

    if(head !=NULL){
    free(head);
    head = NULL; 
    }
    head = (SLNode*)malloc(sizeof(SLNode));
    head->data=x;
    if(head !=NULL){
    r = head;
    cout<<"空间成功申请!"<<endl; 

    /创建一个指针*p,*s来实现创建,代码是:

    p = (SLNode*)malloc(sizeof(SLNode));
    p->data = x;
    r->next = p;
    r = p;

    /判断是否继续执行创建,输入新的数据(这里写的不好,仅供参考),代码是:

    cout<<"是否继续输入:Y/N"<<endl;
    cin>>c;
    if(c == 'Y'||c == 'y'){
    continue;
    }else{
       r->next= NULL;

    }

    //先建立一个完整的链表,然后对其进行增删改查
    //在这里我们采用尾插入的方式来对其进行建立链表
    #include <iostream>
    using namespace std;
    typedef int DataType;
    //声明节点
    typedef struct node{
    DataType data;
    struct node *next;
    }SLNode;
    //创建头指针
    SLNode *InitiateHead(SLNode*phead){
    phead = (SLNode*)malloc(sizeof(SLNode));
    phead->next = NULL;
    return phead;
    }
    SLNode * Create_List(SLNode *head){//头节点开始的申请空间
    SLNode *r,*p;
    int x;
    char c ;
    if(head !=NULL){
    free(head);
    head = NULL;
    }
    head = (SLNode*)malloc(sizeof(SLNode));
    head->data=x;
    if(head !=NULL){
    r = head;
    cout<<"空间成功申请!"<<endl;
    }
    cout<<"创建链表:"<<endl;
    while(c !=NULL||c!='n'){
    cout<<"请输入:";cin>>x;
    p = (SLNode*)malloc(sizeof(SLNode));
    p->data = x;
    r->next = p;
    r = p;
    cout<<"是否继续输入:Y/N"<<endl;
    cin>>c;
    if(c == 'Y'||c == 'y'){
    continue;
    }else{
    r->next= NULL;
    cout<<"首地址1:"<<head<<endl;///
    cout<<"链表创建完成!"<<endl;
    return head;
    }

    }
    }
    void OutPut_List(SLNode *phead){
    SLNode *p;
    // cout<<"首地址3:"<<phead<<endl;///
    //cout<<"首地址4:"<<phead->next<<endl;
    p = phead->next->next;
    //cout<<"data:"<<p->data<<endl;
    int i = 1;
    while(p!=NULL){
    cout<<"第"<<i<<"一个元素:"<<p->data<<endl;
    i++;
    p = p->next;
    }
    }
    void menu(){
    cout<<"_________________________________________________________"<<endl;
    cout<<"|*******************************************************|"<<endl;
    cout<<"|*****************欢迎进入菜单选项*.********************|"<<endl;
    cout<<"|*****************进入初始化阶段请稍后....**************|"<<endl;
    cout<<"|*****************1、创建链表 ***************|"<<endl;
    cout<<"|*****************2、输出链表 *****************|"<<endl;
    cout<<"|*******************************************************|"<<endl;
    cout<<"_________________________________________________________"<<endl;
    }
    void operation(SLNode *phead){
    SLNode *p,*p1;
    int input;
    cout<<"请选择:"<<endl;
    cin>>input;
    //p1=InitiateHead(phead);//头指针
    switch(input){
    case 1:p1=Create_List(p);/* cout<<"首地址2:"<<p1<<endl;*/ phead->next=p1; phead->next=p1;menu();operation(phead); break;
    case 2:cout<<"输出已创建好的链表中的数据:"<<endl;OutPut_List(phead);menu();operation(phead);break;

    }
    }

    int main(){
    SLNode *phead;
    phead=InitiateHead(phead);
    cout<<"首地址2.1:"<<phead<<endl;
    menu();
    operation(phead);

    return 0;

    }

  • 相关阅读:
    JZ初中OJ 2266. 古代人的难题
    JZ初中OJ 1341. [南海2009初中] water
    JZ初中OJ 1340. [南海2009初中] jumpcow
    JZ初中OJ 2000. [2015.8.6普及组模拟赛] Leo搭积木
    JZ初中OJ 1999.[2015.8.6普及组模拟赛] Wexley接苹果
    Unity Android平台下插件/SDK开发通用流程
    UNITY接入支付宝(未测试可行)
    Unity接入支付宝(免写安卓代码,使用JAR方式)
    Unity之多态
    unity与android交互(1)与(2)网友的整理
  • 原文地址:https://www.cnblogs.com/qpxv/p/3733291.html
Copyright © 2011-2022 走看看