已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的交集新鍊錶s3。
輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用−表示序列的結尾(−不屬於這個序列)。數字用空格間隔。
在一行中輸出兩個輸入序列的交集序列,數字間用空格分開,結尾不能有多餘空格;若新鍊錶為空,輸出null
。
1 2 5 -1
2 4 5 8 10 -1
思路:使用陣列很難保證不經過冗長的遍歷,防止出現超時錯誤,選用鍊錶2 5
**:
#includeusingnamespace
std;
typedef
struct lnode //
鍊錶 lnode,*list;
void creatlist(list &s) //
建立鍊錶(輸入數值)
p=(lnode*)malloc(sizeof
(lnode));
p->next=null;
p->data=x;
q->next=p;
q=p;}}
int locateelem(list s,int
e)s=s->next;
}return
flag;
}list jlist(list s1,list s2)
//合成:返回乙個新鍊錶
s1=s1->next;
}returns;}
void printflist(list s) //
輸出鍊錶
s=s->next;
while(s!=null)
else
s=s->next;}}
intmain()
最近複習又看見了乙個優化的方法,思路是一樣的
2020-10-18
#include#includetypedef
struct
lnode
lnode, *list;
void creatlist(list &l)//
構造鍊錶
}list mergetointer(list l1, list l2)
//利用歸併排序的思路稍作修改
}returnl;}
void
coutlist(list l)
l = l->next;
while(l !=null)
}int
main()
pta 兩個有序鍊錶序列的交集
已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的交集新鍊錶s3。輸入格式 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用 1表示序列的結尾 1不屬於這個序列 數字用空格間隔。輸出格式 在一行中輸出兩個輸入序列的交集序列,數字間用空格分開,結尾不能有多餘空格 若新鍊錶為空,輸...
PTA 兩個有序鍊錶序列的合併
本題要求實現乙個函式,將兩個鍊錶表示的遞增整數序列合併為乙個非遞減的整數序列。函式介面定義 list merge list l1,list l2 其中list結構定義如下 typedef struct node ptrtonode struct node typedef ptrtonode list...
pta 兩個有序鍊錶序列的交集
已知兩個非降序鍊錶序列s1與s2,設計函式構造出s1與s2的交集新鍊錶s3。輸入格式 輸入分兩行,分別在每行給出由若干個正整數構成的非降序序列,用 1表示序列的結尾 1不屬於這個序列 數字用空格間隔。輸出格式 在一行中輸出兩個輸入序列的交集序列,數字間用空格分開,結尾不能有多餘空格 若新鍊錶為空,輸...