求單鏈表的最大值與原地逆轉

2022-08-26 19:45:07 字數 2143 閱讀 2701

資料結構鍊錶一章已學習完畢,因此編了乙個程式用以實現鏈式表的構建,插入,查詢,求最大值,以及原地逆轉。

除了求最大值與原地逆轉之外都是常規操作,不再贅述,著重分析最大值與逆轉的演算法。

一、最大值的求解:通過max函式實現,定義結構體指標p指向l的首元節點,max初值為p->data,通過if判斷是否有更大的數,將更大的數賦值給max,同時p指向下乙個節點,由此求出最大的數。**如下:

void max(linklist l,int n)//求最大值

cout<<"max="<

void resver(linklist &l,int n)

l->next->next=null;//設定尾節點為空

l->next=p;//設定首元節點為p

cout<<"鍊錶逆轉後的結果是:" ;

while(p!=null)

cout<

#includeusing namespace std;

#define ok 1

#define error 0

#define overflow -2

typedef int status; //status 是函式返回值型別,其值是函式結果狀態**。

typedef int elemtype; //elemtype 為可定義的資料型別,此設為int型別

typedef struct lnode

lnode,*linklist; //linklist為指向結構體lnode的指標型別

status initlist_l(linklist &l)

status getelem_l(linklist l,int i,elemtype &e)

if(!p || j>i) return error; //第i個元素不存在

e=p->data; //取第i個元素

return ok;

} //getelem_l

lnode *locateelem_l(linklist l,elemtype e) //locateelem_l

status listinsert_l(linklist &l,int i,elemtype &e) //尋找第i-1個結點

if(!p||j>i-1) return error; //i大於表長+1或者小於1

s=new lnode; //生成新結點s

s->data=e; //將結點s的資料域置為e

s->next=p->next; //將結點s插入l中

p->next=s;

return ok;

} //listinsert_l

status listdelete_l(linklist &l,int i,elemtype &e) //尋找第i-1個結點

if(!(p->next) || j>i-1) return error; //i大於表長+1或者小於1

q=p->next; //臨時儲存被刪結點的位址以備釋放

p->next=q->next; //改變刪除結點前驅結點的指標域

e=q->data; //儲存刪除結點的資料域

delete q; //釋放刪除結點的空間

return ok;

} //listdelete_l

void createlist_f(linklist &l,int n)

} //createlist_f

void createlist_l(linklist &l,int n)

} //createlist_l

void max(linklist l,int n)//求最大值

cout<<"max="q=l->next->next;

if(p==null||q==null)

l->next->next=null;//設定尾節點為空

l->next=p;//設定首元節點為p

cout<<"鍊錶逆轉後的結果是:" ;

while(p!=null)

cout<>choose;

switch(choose)

cout<

求單鏈表的最大值與原地逆轉 資料結構精選考研試題

已知一棵二叉樹如右圖,給出對這棵二叉樹進行前序 中序 後序遍歷的結果序列 假設用於通訊的電文僅由 個字母組成,字母在電文 現的頻率分別為 試為這 個字母設計哈夫曼編碼 在位址空間為 0 15 的雜湊區中,對以下關鍵字序列構 g造雜湊表,關鍵字序列為 jan,feb,mar,apr,may,jun,j...

PTA 6 1 求單鏈表最大值

6 1 求單鏈表最大值 6分 本題要求實現乙個函式,返回帶頭結點的單鏈表中最大元素的位址。函式介面定義 linklist maxp linklist l l是帶頭結點的單鏈表的頭指標,函式maxp返回表中最大元素的位址。如果單鏈表為空,返回空指標。其中linklist結構定義如下 typedef s...

6 4 單鏈表最大值 20分

本題要求求出單鏈錶值最大的結點並返回。要求實現兩個函式。函式介面定義 建立單鏈表並返回單鏈表的頭指標 struct node buildlinkedlist int arr,int n 求單鏈錶值最大的結點,返回指向最大值結點的指標。若單鏈表為空,則返回null。struct node getmax...