資料結構鍊錶一章已學習完畢,因此編了乙個程式用以實現鏈式表的構建,插入,查詢,求最大值,以及原地逆轉。
除了求最大值與原地逆轉之外都是常規操作,不再贅述,著重分析最大值與逆轉的演算法。
一、最大值的求解:通過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...