单链表基本操作在主函数中的实现
生活随笔
收集整理的這篇文章主要介紹了
单链表基本操作在主函数中的实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <iostream>
#define OK 1
#define ERROR 0
#define VOERFLOE -2
using namespace std;typedef int Status;
typedef struct LNode
{int date;struct LNode *next;
} LNode,*LinkList;//構造一個空的單鏈表
Status InitList(LinkList &L)
{L=new LNode;L->next=NULL;return OK;
}
//創建單鏈表
void CreatList(LinkList &L,int n)
{L=new LNode;L->next=NULL;for(int i=0; i<n; i++){LinkList p;p=new LNode;cin>>p->date;p->next=L->next;L->next=p;}
}
//單鏈表取值
Status GetNumber(LinkList &L,int i,int &e)
{LinkList p;int j=1;p=L->next;while(p&&j<i){p=p->next;++j;}if(!p||j>i)return ERROR;e=p->date;return OK;
}
//單鏈表查找
LNode *LocateNumber(LinkList &L,int e)
{LinkList p;p=L->next;while(p&&p->date!=e){p=p->next;}return p;
}
//單鏈表插入
int ListInsert(LinkList &L,int i,int e)
{LinkList p;int j=0;p=L;while(p&&(j<i-1)){p=p->next;++j;}if(!p||j>i-1)return ERROR;LNode *s=new LNode;s->date=e;s->next=L->next;L->next=s;return OK;
}
//單鏈表刪除
Status ListDelete(LinkList &L,int i)
{LinkList p,q;int j=0;p=L;while(p->next&&(j<i-1)){p=p->next;++j;}if((!p->next)||(j>i-1)) return ERROR;q=p->next;p->next=q->next;delete q;return OK;
}
void display(LinkList &L)
{LNode *p;p=L->next;while(p->next){cout<<p->date<<"->";p=p->next;}cout<<p->date;
}
void welcome()
{cout<<"1.初始化\n";cout<<"2.輸入\n";cout<<"3.取值\n";cout<<"4.查找\n";cout<<"5.插入\n";cout<<"6.刪除\n";cout<<"7.輸出\n";cout<<"0.退出\n";cout<<endl;
}int main()
{LinkList L;welcome();bool a=true;while(a){int N;cout<<endl<< "請選擇:";cin>>N;switch(N){case 1:{InitList(L);cout<<"成功構建一個空的單鏈表!";break;}case 2:{int n;cout<<"請輸入單鏈表長度:";cin>>n;cout<<"請逆序輸入單鏈表元素:";CreatList(L,n);cout<<"單鏈表創建成功!";break;}case 3:{int i,e;cout<<"請輸入所取元素位置:";cin>>i;if(GetNumber(L,i,e)){cout<<"取值成功,值為:";cout<<e;}break;}case 4:{int e;cout<<"請輸入所要查找的元素:";cin>>e;LocateNumber(L,e);cout<<"元素的位置是:"<<e;break;}case 5:{int i,e;cout<<"請輸入位置i:";cin>>i;cout<<"請輸入插入元素:";cin>>e;if(ListInsert(L,i,e)){cout<<"插入成功!";}break;}case 6:{int i;cout<<"請輸入要刪除的位置i:";cin>>i;if( ListDelete(L,i)){cout<<"刪除成功!";}}case 7:{cout<<"鏈表元素為:";display(L);break;}case 0:{a=false;}}}return 0;
}
總結
以上是生活随笔為你收集整理的单链表基本操作在主函数中的实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 扣扣空间登录的方法 怎么登陆qq空间
- 下一篇: nba被称为滑翔机的是哪位球员 nba谁