日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线性表易错点与线性表程序设计易错点

發布時間:2024/10/14 编程问答 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性表易错点与线性表程序设计易错点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

寫在前面:博主是一位普普通通的19屆雙非軟工在讀生,平時最大的愛好就是聽聽歌,逛逛B站。博主很喜歡的一句話花開堪折直須折,莫待無花空折枝:博主的理解是頭一次為人,就應該做自己想做的事,做自己不后悔的事,做自己以后不會留有遺憾的事,做自己覺得有意義的事,不浪費這大好的青春年華。博主寫博客目的是記錄所學到的知識并方便自己復習,在記錄知識的同時獲得部分瀏覽量,得到更多人的認可,滿足小小的成就感,同時在寫博客的途中結交更多志同道合的朋友,讓自己在技術的路上并不孤單。

目錄:
1.線性表易錯知識點
???? ?? 單鏈表的存儲密度
???? ?? 關于頭指針和頭結點和首元結點
???? ?? 關于為何使用頭結點及相關題目
2.線性表程序設計易錯題
???? ?? 線性表的原地逆轉
???? ?? 刪除順序表中值為item的元素
???? ?? 確定鏈表倒數第k個結點

1.1單鏈表的存儲密度

單鏈表的存儲密度小于1

存儲密度:數據元素本身所占的存儲量和整個結點結構所占的存儲量之比。

由于鏈表的結點不及要設置數據元素外,還要額外設置指針域,設單鏈表數據元素本身所占存儲量為D,指針域所占得到存儲量為N,則存儲密度為D/(D+N),所以一定小于1

1.2關于頭指針和頭結點和首元結點

1.頭結點:頭結點指針域存放首元結點,數據域一般可以不存儲任何信息
2.頭指針:頭指針指向鏈表中第一個結點的指針,若鏈表有頭結點,則頭指針指向頭結點,若鏈表無頭結點那么頭指針指向線性表首元結點
3.首元結點:第一個存放數據元素的結點

1.3關于為何使用頭結點及相關題目

為了使對首元結點的操作與其他結點的操作一致

看一道例題:

在單循環鏈表中,將頭指針改設為尾指針(rear)后,其首元結點和尾結點存儲位置分別是()
答案:

首元結點:rear->next->next
尾結點:rear

需要特別注意的是:在單循環鏈表中有一個頭結點

2.線性表程序設計考研大題

2.1線性表的原地逆轉

設計一個算法,使得鏈表中的結點按照鏈接方向原地旋轉,并要求算法的空間復雜度為O(1)

void Inverse(LinkList &L) {p=L->next;L->next=NULL;while(p!NULL){q=p->next;p->next=L->next;L->next=p;p=q;} }

2.2刪除順序表中值為item的元素

題目描述:已知長度為n的線性表A采用順序存儲結構,寫一個時間復雜度為O(n),空間復雜度為O(1)的算法,該算法可刪除線性表中所有值為item的數據元素

void DeleteItem(SqList &A,ElemType item) {k=0;for(int i=0;i<A.length;i++){if(A.Elem[i]!=item){A.Elem[k]=A.Elem[i]; K++;}A.Length=k;} }

2.3 確定鏈表倒數第k個結點

我們如何高效的確定倒數第k個結點的位置

p=L>next;//p等于首元結點 q=L->next; int i=0; while(p!=NULL) {if(i<k)i++;elseq=q->next;p=p->next; }

最終q指向的是倒數第k個結點

總結

以上是生活随笔為你收集整理的线性表易错点与线性表程序设计易错点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。