導航:首頁 > 源碼編譯 > 線性表演算法程序順序表和單鏈表

線性表演算法程序順序表和單鏈表

發布時間:2024-08-03 14:05:41

A. 線性表的就地逆置的程序代碼怎麼寫

1. 順序表:
要將該表逆置,可以將表中的開始結點與終端結點互換,第二個結點與倒數第二個結點互換,如此反復,就可將整個表逆置了。演算法如下:
// 表結構定義同上
void ReverseList( Seqlist *L)
{
Datatype t ; //設置臨時空間用於存放data
int i;
for ( i=0 ; i < L->length/2 ; i++)
{ t = L->data[i];//交換數據
L -> data[ i ] = L -> data[ L -> length - 1 - i ] ;
L -> data[ L -> length - 1 - i ] = t ;
}
}

2. 鏈表:
也是可以用交換數據的方式來達到逆置的目的,但是由於是單鏈表,數據的存取不是隨機的,因此演算法效率太低,我們可以利用指針的指向轉換來達到表逆置的目的。演算法是這樣的:
// 結構定義略
LinkList ReverseList( LinkList head )
{
// 將head 所指的單鏈表逆置
ListNode *p ,*q ;//設置兩個臨時指針變數
if( head->next && head->next->next)
{
//當鏈表不是空表或單結點時
p=head->next;
q=p->next;
p -> next=NULL;//將開始結點變成終端結點
while (q)
{//每次循環將後一個結點變成開始結點
p=q;
q=q->next ;
p->next = head-> next ;
head->next = p;
}
return head;
}
return head;//如是空表或單結點表,直接返回head
}
樓上的代碼胡弄洋鬼子呢,也沒實現逆置,只是逆向輸出了一下!

B. C語言實現線性表的逆置問題,順序和單鏈表。在線等高手

逆置有兩種方法,第一是把所有節點反過來。還有一種就是改變節點中的值。
第一種情況,其實可以考慮用頭插法,來實現逆置。
下面的演算法是基於頭插法的思想,逆置鏈表的,僅供參考。
LinkList anti_linklist(LinkList demo)
{
LInkList *p,*q;//work pointer
LinkList head;
head=new LinkList();
head->next=null;//init head pointer
p=demo->head->next;//make p points to the first node
if(p==null)
return null;//the linklist is null
while(p!=null)
{
q=p;
q->next=head->next;
head->next=q;
p=p->next;
}
}

這個是我回答之前的一個問題的答案。供你參考。

C. 請分別對順序表和單鏈表寫出求線性表中下標為i的(第i+1個)元素的前驅和後續的演算法

順序表:前驅a[i-1],後繼a[i+1]
線性表:p=head;
int j=0;
while(j!=i)
{
j++;
p=p->next ;
}
前驅p->data,後繼p->next->next->data

D. 設計一個演算法,將線性表逆置,要求逆線性表佔用原線性表空間,用順序和單鏈表兩種方法表示,最好有注釋哦

順序表用逆序數組的方法,鏈表用一個結點(無需分配,自動變數即作新頭結點尾插法即可如果帶空頭結點頭->next =n.next,不帶空頭結點頭作尾n.next作新頭結點即可(要改寫頭結點)!

閱讀全文

與線性表演算法程序順序表和單鏈表相關的資料

熱點內容
雲之家程序員 瀏覽:623
怎麼讓表格中的名稱生成文件夾 瀏覽:184
網頁控制單片機需要哪些js文件 瀏覽:670
類似7z002的壓縮文件如何解壓 瀏覽:561
移動dsn伺服器地址 瀏覽:691
90後女性嫁給程序員 瀏覽:304
fcm演算法原理 瀏覽:805
上海興力壓縮機 瀏覽:701
什麼app可以推送小區 瀏覽:594
韓國解壓視頻網站 瀏覽:621
做庫管用什麼app 瀏覽:35
pdf轉dwg怎麼轉 瀏覽:55
單片機微小電阻測量 瀏覽:138
表格25兆怎麼壓縮 瀏覽:69
java開發公司的 瀏覽:131
東風天錦壓縮車工作指示燈不亮 瀏覽:985
劍俠情緣1源碼 瀏覽:532
cad2011怎麼轉換成pdf格式 瀏覽:966
傳祺gs5安卓車機如何還原車機 瀏覽:900
單片機和編程器互相傳輸數據 瀏覽:92