time limit: 1000 ms memory limit: 65536 kib
給出乙個只有頭指標的鍊錶和 n 次操作,每次操作為在鍊錶的第 m 個元素後面插入乙個新元素x。若m 大於鍊錶的元素總數則將x放在鍊錶的最後。
多組輸入。每組資料首先輸入乙個整數n(n∈[1,100]),代表有n次操作。
接下來的n行,每行有兩個整數mi(mi∈[0,10000]),xi。
對於每組資料。從前到後輸出鍊錶的所有元素,兩個元素之間用空格隔開。
4
1 11 2
0 3100 4
此題我共寫過兩種方法,方法的主要差別是查詢的過程。3 1 2 4
方法一:
#include #include struct node
;struct node * head_creat();
void insert_node(struct node *, int, int);
void output_list(struct node *);
int main()
output_list(head);///n 為 0 時輸出本組資料組成的鍊錶
}return 0;
}struct node *head_creat()
void insert_node(struct node *head, int m, int x)
/// 下方為:順序插入結點的操作
q = (struct node *)malloc(sizeof(struct node));///建立乙個結點並令 q 指向它
q->data = x;///為 q 所指向的結點資料域賦值
q->next = p->next;///令 q 的指標域指向 p 的指標域所指向的結點
p->next = q;///令 p 的指標域指向 q, 結點插入完成
}void output_list(struct node *head)
printf("\n");
}
方法二:
#include struct node
;using namespace std;
struct node * sequence_linked_list();
void insert_node(struct node *, int);
void output_list(struct node *);
int main()
return 0;
}struct node *sequence_linked_list()
;void insert_node(struct node *head, int n)
else
}if(q->next == null)
}}void output_list(struct node *head)
cout << endl;
}
師 鍊錶的結點插入
time limit 1000ms memory limit 65536kb problem description 給出乙個只有頭指標的鍊錶和 n 次操作,每次操作為在鍊錶的第 m 個元素後面插入乙個新元素x。若m 大於鍊錶的元素總數則將x放在鍊錶的最後。input 多組輸入。每組資料首先輸入乙個...
師 鍊錶的結點插入
think 每次進行插入相對應位置的元素,然後遍歷輸出。過程 第一次 1 第二次 1 2 第三次 3 1 2 第四次 3 1 2 4 problem description 給出乙個只有頭指標的鍊錶和 n 次操作,每次操作為在鍊錶的第 m 個元素後面插入乙個新元素x。若m 大於鍊錶的元素總數則將x放...
師 鍊錶的結點插入
submit statistic problem description 給出乙個只有頭指標的鍊錶和 n 次操作,每次操作為在鍊錶的第 m 個元素後面插入乙個新元素x。若m 大於鍊錶的元素總數則將x放在鍊錶的最後。input 多組輸入。每組資料首先輸入乙個整數n n 1,100 代表有n次操作。接下...