單鏈表的實現:
描述定義單鏈錶類,建立帶頭結點的單鏈表(節點型別為整型資料),要求包含以下成員函式:
頭插法建立單鏈表(利用建構函式實現)
尾插法建立單鏈表(過載建構函式實現)
鍊錶的遍歷
按值刪除乙個節點
按位置刪除乙個節點
鍊錶的析構
輸入輸入一組資料,以尾插法的形式建立單鏈表(0表示輸入結束)(構造第乙個鍊錶)
輸入一組資料,以頭插法的形式建立單鏈表(0表示輸入結束)(構造第二個鍊錶)
輸入要刪除元素的值(在尾插法建立的鍊錶中進行改操作)
輸入要刪除元素的位置(在尾插法建立的鍊錶中進行改操作)
輸出輸出尾插法建立鍊錶的結果
輸出頭插法插法建立鍊錶的結果
輸出按值刪除之後鍊錶中剩餘的元素(若刪除的元素不存在,輸出error)
輸出按位置刪除之後鍊錶中剩餘的元素(若刪除的元素不存在,輸出error
樣例輸入
1 2 3 4 5 0
1 2 3 4 5 0
20
樣例輸出
1 2 3 4 5
5 4 3 2 1
1 3 4 5
error
**:
#include#include#includeusing namespace std;
struct node
};class list
list(int a,int n);//頭插法
list(int a,int n,int m);//尾插法
void listdel(int n);//按位查詢
void listremove(int num);//按值查詢
};list::list(int a,int n)
node *p;
p=first->next; //設立指標p並移動指標輸出
while(p!=null)
}list::list(int a,int n,int num)
p->next=null;
node *q;
q=head->next; //設立指標q並移動指標輸出
while(q!=null)
}void list::listdel(int n)//按位
p=p->next;
}if(!flag) cout<<"error";
else
}}void list::listremove(int num)
p=p->next;
}if(!flag) cout<<"error";
else
}}int a[1000001],b[1000001];
int main()
};class list
list(int a,int n);
void in(int a,int n);
void del(int a,int n);
void out();
~list() {}
};void list::out()
}list::list(int a,int n)
p=p->next;
}if(!flag)
}out();
}}void list::in(int a,int n)
p=p->next;
}if(!flag)
}out();
}void list::del(int a,int n)
p=p->next;}}
out();
}int a[100000],n,m,tmp;
int main()
有序雙鏈表的實現
總時間限制 100000ms 記憶體限制 655360kb 描述定義有序的雙鏈錶類,鍊錶中儲存整型資料,建立帶頭結點的有序雙鏈表,要求包含以下成員函式 雙鏈表的建構函式 非空的鍊錶,輸入資料為0,表示輸入結束 插入操作 將乙個資料元素插入到有序的雙鏈表中,插入之後鍊錶仍然有序,輸入資料為0表示插入操...
單鏈表與雙鏈表佇列
一,鍊錶分類 單鏈表與雙向鍊錶 三,定義類 1 node類 傳值與重寫get,set方法 2 linknodelist類 將對資料的增刪差改的基本操作方法或屬性 3 main 主函式類,進行資料的呼叫 四,單鏈表的示例 public class linklistnode else 設定新節點為最後乙...
單鏈表 雙鏈表
實現乙個單鏈表,鍊錶初始為空,支援三種操作 1 向煉表頭插入乙個數 2 刪除第k個插入的數後面的數 3 在第k個插入的數後插入乙個數 現在要對該鍊錶進行m次操作,進行完所有操作後,從頭到尾輸出整個鍊錶。注意 題目中第k個插入的數並不是指當前鍊錶的第k個數。例如操作過程中一共插入了n個數,則按照插入的...