您好,登錄后才能下訂單哦!
#include<iostream> using namespace std; #define OK 1; #define ERROR 0; typedef int ElemType; typedef int Status; typedef struct LNode //定義鏈表結構體 { ElemType data; struct LNode *next; }LNode, *LinkList; Status CreateList_L(LinkList &L,int n) //創建鏈表并輸入數據 { int i; LinkList p,q; //p q :過度指針 L=new LNode; //新申請的結點 L->next=NULL; //生成頭指針 q=L; cout<<"please input "<<n<< " numbers"; for(i=1;i<=n;i++) { p=new LNode; //申請新的結點 cin>>p->data; q->next=p; // 鏈表鏈接 q=q->next; // 跳指針 } q->next=NULL; //生成尾指針 return OK; } Status Outptlist_L(LinkList L) //輸出鏈表 { LinkList p; p=L->next; //指向首結點 if(p==NULL) //當鏈表尾空 指示返回空鏈表 { cout<<"This list is empyt."<<endl; } while (p!=NULL) { cout<<p->data<<" "; //當鏈表不為空,輸出鏈表數據 p=p->next; // 跳指針 } cout <<endl; return OK; } int Listlength_(LinkList L) //求鏈表長度 { LinkList p; int n=0; p=L->next; //p指向首結點 while (p!=NULL) { n++; p=p->next; } return n; } Status GetElem_L(LinkList L,int i,ElemType &e) //將鏈表L中第i個元素用e返回 { LinkList p; int j; if (i<1||i> Listlength_(L)) //判斷選擇的合理性 return ERROR; p=L->next; for (j=1;j<i;j++) //for 循環尋找第i個元素 p=p->next ; e=p->data; //用e返回 return OK; } Status ListInsert_L(LinkList&L,int i,ElemType e) // 在鏈表第i個位置插入e { LinkList p,S; int j; if (i<1||i> Listlength_(L)+1) //判斷選擇的合理性 return ERROR; if (i==1) p=L; //當在第一個元素插入時p指向頭指針 else p=L->next; //否則指向首結點 for(j=1;j<i-1;j++) p=p->next; S=new LNode; //申請新的結點 S->data=e; //將e賦給新的結點 S->next=p->next; //將新結點與前一個結點的next鏈接 p->next=S; //將前一個結點與新節點鏈接 return OK; } Status ListDelete_L(LinkList&L,int i,ElemType &e) //刪除鏈表L的第i個元素,并用e返回 { LinkList p,q; int j; if (i<1||i> Listlength_(L)) //判斷選擇的合理性 return ERROR; p=L->next; for(j=1;j<i-1;j++) //找到第i個元素 p=p->next; q =p->next; // q指向p的next e=q->data; // 取q的數據 p->next=q->next; //將p的next與q的next鏈接 free(q); //釋放指針 return OK; } void main () { int n,m,k; LinkList L1; cout <<"please input a umber: "; cin>> m; CreateList_L(L1,m); cout<<"輸出列表:"; Outptlist_L( L1); cout<<"The length is "<< Listlength_(L1)<<endl; GetElem_L( L1,3,n); cout<<"The number is "<<n<<endl; ListInsert_L(L1,6, 0); cout<<"The Insertlist is : "; Outptlist_L( L1); ListDelete_L(L1,3,k); cout<<"The Deletelist is : "; Outptlist_L( L1); cout<<"The Delete number is "<<k<<endl; }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。