@關與c++鍊錶插入與倒置問題
掌握c++鍊錶插入與倒置問題
學會新建鍊錶,倒置資料,列印資料
1、 引入c++模板庫 2、 學會struct結構體遞迴巢狀使用 3、 懂得使用前插法插入鍊錶資料 4、 掌握倒置鍊錶的資料方法
結構體內容:
// an highlighted block
typedef
struct lnodelnode,
*linklist;
前插法建立資料鏈
linklist createlist
(int n,
double j[
],string name)
return l;
//一定得返回頭節點啊!!!
}
列印資料內容
void
printlist
(linklist l)
}
倒置列表元素(關鍵):
csdn看了一些帖子,直接將頭結點置為尾結點,這是不對的!!!,頭結點只起指向作用,裡面木有data,被繞暈了很久總算想明白了~~頭結點當尾結點是裡面不能存放data,需保留頭結點再將其後面的結點倒置,最後鏈結到頭結點上~
linklist upsidedown
(linklist l)
l->next = p;
//將已經鏈好的結點付到頭結點後面
return l;
//返回鍊錶
}
以下是完成的完整**
#include
#include
#define error 0
#define ok 1
using namespace std;
typedef
double elemtype;
typedef
struct lnodelnode,
*linklist;
//前插法建立資料鏈
linklist createlist
(int n,
double j[
],string name)
return l;
//一定得返回頭節點啊!!!
}//列印資料內容
void
printlist
(linklist l)
}//倒置列表元素
//linklist upsidedown(linklist l)
// l->next=p;//讓頭結點變為末尾的結點
// return l; //返回鍊錶
//
//} //演算法出錯,頭結點當尾結點是裡面不能存放data,需保留頭結點再將其後面的結點倒置,最後鏈結到頭結點上~
linklist upsidedown
(linklist l)
l->next = p;
//將已經鏈好的結點付到頭結點後面
return l;
//返回鍊錶
}int
main()
;// double p=price[1];
// printf("%f",p);
string name[4]
=;//cout << name[2];
l =createlist(4
,price,name)
;printlist
(l);
cout <<
"倒置以後:\n"
; l =
upsidedown
(l);
printlist
(l);
}
博主第一次寫文章,有錯誤懇請指證別介意~~~ 資料結構 鍊錶倒置
程式設計 用帶頭建立一單鏈表 用後插入法建立至少 10個結點以上 要求在原鏈基礎上,把該單鏈表倒置 原第一結點在最後,原最後一結點在第乙個資料結點的位置 注意 不能直接用 list 型別來程式設計 include using namespace std typedef struct node pos...
資料結構與演算法 遞增鍊錶的插入
題目描述 給定乙個遞增整數序列和某個整數m,構造出此遞增序列對應的鍊錶,並建立以m為值的新結點插入到鍊錶中,使其結果序列依然保持遞增順序。輸入每個輸入包含乙個測試用例,第1行包含原序列長度n 任意long int範圍內的正整數 與待插入的整數m 第2行包含n個遞增的整數代表原遞增數列。輸出根據此遞增...
資料結構 順序表與鍊錶
順序表插入操作 temp seqlist list temp賦值為乙個結構體變數 for i temp length i pos i pos是插入的位置,注意是ta是下標 temp i int node 放新結點 temp length 刪除操作 for int i pos 1 ilength i ...