zoukankan      html  css  js  c++  java
  • 链表的基本表示操作

    //链表:
    
    #include <iostream>
    using namespace std;
    //定义结点:
    struct NODE
    {
        int data;//数据域
        NODE *next;//指针域
    };
    //链表类:
    class LIST
    {
        NODE *head;
    public:
        //构造函数
        LIST()
        {
            head = new NODE;//申请结点空间
            head->next = NULL;//指针域设为空
        }
    
        void readInit(int n);
        int getByNum(int n);
        int getByData(int data);
    };
    //创建链表
    void LIST::readInit(int n)
    {
        cout << "请输入"<< n << "个结点值" << endl;
        int data;
        for(int i = 0; i < n; i++)
        {
            cin >> data;
    NODE *newNode = new NODE;
    //为每一个结点申请空间 newNode->data = data;
    newNode->next = NULL;
    //指针域设置为空 NODE *cur = head;
    //又定义一个数组指针指向表头 while(cur->next) { cur = cur->next; } cur->next = newNode; } } //通过序号查找数值: int LIST::getByNum( int n ) { int i = 0; NODE* cur = head; while(cur->next && i < n) { cur = cur->next;

    //不断地把后面的指针域赋值给前面的;直到i=n也就是当找到需要的元素时 i++; } return cur->data;//输出要查找的元素 } //通过数值查找序号: int LIST::getByData( int data ) { int i = 0; NODE *cur = head;//为什么都要把head放到*cur里面? while(cur->next) { cur = cur->next; i++;//用来记录序号数,然后如果找到就把这个序号输出 if(cur->data == data) { return i; } } return -1; } int main() { int n, i, data; LIST list; cout << "请输入要建立的链表长度" << endl; cin >> n; list.readInit(n); cout << "请输入要查询的链表序号" << endl; cin >> i; cout << "" << i << "个结点值为" << list.getByNum(i) << endl; cout << "请输入要查询的结点值" << endl; cin >> data; i = list.getByData(data); if(i == -1) { cout << "找不到该结点" << endl; } else { cout << "该结点值位于第" << i << "" << endl; } system("pause"); return 0; }
  • 相关阅读:
    java微信小程序调用支付接口
    Java开发中的23种设计模式详解(转)
    SSM框架-SpringMVC 实例文件上传下载
    设计模式--观察者模式
    设计模式之策略模式
    网络通讯简单了解
    android 五子棋开发
    android studio里的build.gradle基本属性
    android studio 真机调试
    java线程知识点
  • 原文地址:https://www.cnblogs.com/tianjintou/p/4518371.html
Copyright © 2011-2022 走看看