三元顺序表要预留存储空间吗
㈠ 涓夊厓缁勮〃澶村崰涓嶅崰瀛桦偍绌洪棿锛
浣犲ソ锛涓夊厓缁琛ㄥご涔熸槸鍗犲瓨鍌ㄧ┖闂寸殑锛屼竴鑸浼氩崰鍒1~2涓瀛楄妭銆
浠ュ悗鎭ㄥ傛灉鍐嶉亣鍒扮被浼肩殑闂棰桡纴鍙浠ユ寜镦т笅闱㈢殑镐濊矾铡昏В鍐筹细
1銆佸彂鐜伴梾棰:寰寰鐢熸椿鍦ㄤ笘鐣屼腑锛屾椂镞跺埢鍒婚兘澶勫湪杩椤悇绉嶅悇镙风殑鐭涚浘涓锛屽綋镆愪簺鐭涚浘鏀炬椠鍒版剰璇嗕腑镞,涓浣撴墠鍙戠幇浠栨槸涓闂棰桡纴骞惰佹眰璁炬硶铡昏В鍐冲畠銆傝繖灏辨槸鍙戠幇闂棰樼殑阒舵点备粠闂棰樼殑瑙e喅镄勯桩娈垫х湅锛岃繖鏄绗涓阒舵碉纴鏄瑙e喅闂棰樼殑鍓嶆彁銆
2銆佸垎鏋愰梾棰:瑕佽В鍐虫墍鍙戠幇镄勯梾棰桡纴蹇呴’鏄庣‘闂棰樼殑镐ц川锛屼篃灏辨槸寮勬竻妤氭湁鍝浜涚煕鐩俱佸摢浜涚煕鐩炬柟闱锛屼粬浠涔嬮棿链変粈涔埚叧绯,浠ユ槑纭镓瑕佽В鍐崇殑闂棰樿佽揪鍒颁粈涔堢粨鏋滐纴镓蹇呴’鍏峰囩殑𨱒′欢銆佸叾闂寸殑鍏崇郴鍜屽凡鍏锋湁鍝浜涙浔浠,浠庤屾垒鍑洪吨瑕佺殑鐭涚浘銆佸叧阌鐭涚浘涔嬫墍鍦ㄣ
3銆佹彁鍑哄亣璁:鍦ㄥ垎鏋愰梾棰樼殑锘虹涓婏纴鎻愬嚭瑙e喅闂棰樼殑锅囱,鍗冲彲閲囩敤镄勮В鍐虫柟妗,鍏朵腑鍖呮嫭閲囧彇浠涔埚师鍒椤拰鍏蜂綋镄勯斿缎鍜屾柟娉曪纴浣嗘墍链夎繖浜涘线寰涓嶆槸绠鍗旷幇鎴愮殑锛岃屼笖链夊氱嶅氭牱镄勫彲鑳姐备絾鎻愬嚭锅囱炬槸闂棰樿В鍐崇殑鍏抽敭阒舵碉纴姝g‘镄勫亣璁惧紩瀵奸梾棰橀‘鍒╁缑鍒拌В鍐,涓嶆g‘涓嶆伆褰撶殑锅囱惧垯浣块梾棰樼殑瑙e喅璧板集璺鎴栧煎悜姝ч斻
4銆佹牎楠屽亣璁:锅囱惧彧鏄鎻愬嚭n绉嶅彲鑳借В鍐虫柟妗,杩树笉鑳戒缭璇侀梾棰桦繀瀹氲兘銮峰缑瑙e喅锛屾墍浠ラ梾棰樿В鍐崇殑链钖庝竴姝ユ槸瀵瑰亣璁捐繘琛屾楠屻备笉璁哄摢绉嶆楠屽傛灉链鑳借幏寰楅勬湡缁撴灉锛屽繀椤婚吨鏂板彟鎻愬嚭锅囱惧啀杩涜屾楠岋纴鐩磋呖銮峰缑姝g‘缁撴灉锛岄梾棰樻墠绠楄В鍐炽
㈡ 利用三元组存储任意稀疏矩阵时,在什么条件下能节省存储空间 简答题
若一个稀疏矩阵有T个非零元素,则需要T+1行的三元组来表示稀疏矩阵.一般对于M*N的矩阵来说,只要满足3(T+1)<=M*N 这个条件,使用三元组存储可以节省空间.
㈢ C语言(数据结构)顺序表的初始化
肯定是要分配空间的,你第一个程序的initsqlist函数中声明的结构体指针(Sqlist *a;),而第二个程序的initsqlist函数中是声明的结构体(Sqlist a;),前者只是在计算机内存中声明一个指针,而不会给这个指针分配内存空间,所以你初始化的时候要给这个指针用malloc函数分配空间,而后者是实实在在的定义了一个结构体,在内存在不仅仅是一个地址,还分配了空间,就像你定义了一个数组一样,已经在内存存在空间了,不需要再分配了。
总体来说就是你定义的是指针的话就要分配空间。
你的2个程序都是对的,但是一般用第一种定义链表!!!