• 73.链表的基本操作


      1 #include <iostream>
      2 #include <cstring>
      3 #include <string>
      4 using namespace std;
      5 int n;
      6 struct LinkList
      7 {
      8     int value;//数据域
      9     struct LinkList *next;//指针域
     10 }*head;
     11 
     12 void init()
     13 {
     14     cout<<"                           线性链表"<<endl;
     15     cout<<endl;
     16     cout<<"                      (1)设置线性链表中的元素"<<endl;
     17     cout<<endl;
     18     cout<<"                      (2)查找线性链表中的元素"<<endl;
     19     cout<<endl;
     20     cout<<"                      (3)删除线性链表中的元素"<<endl;
     21     cout<<endl;
     22     cout<<"                      (4)统计线性链表中元素的总数"<<endl;
     23 }
     24 
     25 void Add()
     26 {
     27     cout<<endl;
     28     int addNum,addvalue;//元素的个数及数值
     29     cout<<"                      请输入将要设置链表元素的个数:"<<endl;
     30     cout<<endl;
     31     cout<<"                      ";
     32     cin>>addNum;
     33     cout<<endl;
     34     cout<<"                      请依次输入将要设置的元素的值:"<<endl;
     35     cout<<endl;
     36     head=new LinkList;
     37     head->next=NULL;
     38     struct LinkList *q,*p;
     39     p=head;
     40     cout<<"                      ";
     41     while(addNum--){
     42         q=new LinkList;
     43         q->next=NULL;
     44         cin>>addvalue;
     45         p->value=addvalue;
     46         p->next=q;
     47         p=q;
     48     }
     49     cout<<endl;
     50     cout<<"                      输入完毕 !!!"<<endl;
     51     cout<<endl;
     52 }
     53 
     54 void Delete()
     55 {
     56     cout<<endl;
     57     struct LinkList *k,*v;
     58     k=head;
     59     cout<<"                      请输入要删除的元素"<<endl;
     60     cout<<endl;
     61     int deletevalue;
     62     cout<<"                      ";
     63     cin>>deletevalue;
     64     cout<<endl;
     65     while(k->next){
     66         if(k->next->value==deletevalue){
     67             v=k->next;
     68             k->next=v->next;
     69             delete v;
     70         };
     71         k=k->next;
     72     }
     73     cout<<endl;
     74     cout<<"                      删除完毕 !!!"<<endl;
     75     cout<<endl;
     76 }
     77 
     78 void Find()
     79 {
     80     cout<<endl;
     81     struct LinkList *k;
     82     k=head;
     83     cout<<"                      请输入要查找的元素:"<<endl;
     84     cout<<endl;
     85     int Findvalue;
     86     cout<<"                      ";
     87     cin>>Findvalue;
     88     cout<<endl;
     89     int flag=0;
     90     int i=1;
     91     while(k->next!=NULL){
     92         if(k->value==Findvalue){
     93             flag=1;
     94             break;
     95         }
     96         k=k->next;
     97         i++;
     98     }
     99     if(flag){
    100         cout<<"                      要查找的元素找到了!!!它在第"<<i<<"个位置"<<endl;
    101     }else{
    102         cout<<"                      所查找的值不存在!!!"<<endl;
    103     }
    104     cout<<endl;
    105 
    106 }
    107 
    108 void Count()
    109 {
    110     cout<<endl;
    111     struct LinkList *k;
    112     k=head;
    113     int sum=0;
    114     while(k->next!=NULL){
    115         sum++;
    116         k=k->next;
    117     }
    118     cout<<"                      线性链表元素的总数为:"<<sum<<""<<endl;
    119     cout<<endl;
    120 }
    121 
    122 void Put()
    123 {
    124     struct LinkList *k;
    125     k=head;
    126     cout<<"线性链表中元素依次为:"<<endl;
    127     cout<<endl;
    128     cout<<"                      ";
    129     while(k->next!=NULL){
    130         cout<<k->value<<" ";
    131         k=k->next;
    132     }
    133     cout<<endl;
    134     cout<<endl;
    135 }
    136 
    137 int main()
    138 {
    139     init();
    140     while(1){
    141         cout<<endl;
    142         cout<<"                      请按下功能键 ..."<<endl;
    143         cout<<endl;
    144         cout<<"                      ";
    145         cin>>n;
    146         if(n==1) Add();
    147         if(n==2) Find();
    148         if(n==3) {
    149             cout<<endl;
    150             cout<<"                      删除操作前";
    151             Put();
    152             Delete();
    153             cout<<"                      删除操作后";
    154             Put();
    155         }
    156         if(n==4) Count();
    157         if(n<1||n>4){
    158             cout<<endl;
    159             cout<<"                      功能键不存在请重新输入!!!"<<endl;
    160             cout<<endl;
    161         }
    162         cout<<"                      -----------------------"<<endl;
    163         cout<<endl;
    164         init();
    165     }
    166     return 0;
    167 }
  • 相关阅读:
    【Language】 TIOBE Programming Community Index for February 2013
    【diary】good health, good code
    【web】a little bug of cnblog
    【Git】git bush 常用命令
    【web】Baidu zone ,let the world know you
    【diary】help others ,help yourself ,coding is happiness
    【Git】Chinese messy code in widows git log
    【windows】add some font into computer
    SqlServer启动参数配置
    关于sqlserver中xml数据的操作
  • 原文地址:https://www.cnblogs.com/shixinzei/p/8336826.html
Copyright © 2020-2023  润新知