A. 若長度為n的線性表採用順序存儲結構,在其第i個位置插入一個新元素的演算法的時
1.C
2.C
3.D
4.C
5.A
6.D
7.B
8.D
9.B
10.D
不保證全對,不過題目還是要你自己做比較好吧!
B. 設順序表L中的數據元素遞增有序,試寫一演算法,在該表的適當位置插入新元素x並保持
給個思路吧,折半查找,存儲結構用線性表 用數組實現或鏈表,折半查找最終的結束條件要改下,因為有可能找到,有可能找不到,如果能找到就是說新元素有原來的序列的某個值是一樣的,就直接插入到那個元素的後面,如果找不到,說明序列不含有這個值,根據折半查找的最後一步來判斷是插入在前面還是後面
C. 順序表中元素插入演算法詳細解釋
//將順序表第i-1個元素至最後一個元素全部向後移動一位
for(j=L->last;j>=i-1;j--)
L->data[j+1]=L->data[j]
//將新元素x插入到原第i-1個元素的位置
L->data[i-1]=x;
//更新順序表長度
L->last++;
D. 演算法設計:向線性表中第i個位置插入一個新元素x。如果i不合理則顯示出錯信息並退出運行
int insertList(List * L, int n, List *a){
List *list = L;
int i;
for(i = 0; i < n; i++){
if(list->next == NULL){
printf("插入失敗\n");
return 0;
}
list->next = list;
}
list->next = a;
return 1;
}
E. 試設計一個演算法,完成向順序表第i個位置處插入一個給定值為item的新元素。給出該演算法的時間復雜度T(n)。
從最後一個位置依次向後移 第i個位置移到第i+1個位置後 把新元素放到第i個位置
F. 一個有序的數據元素序列,已線性鏈表存儲,設計一個演算法,在該鏈表上插入一個新元素,保持鏈表的有序性
int insert(List **lptr, ElemType e)
{
//lptr為有序的鏈表,e為要插入的元素,如果插入成功則返回1,否則返回0
List *newNode, *cur, *prior;
newNode = (List*)malloc(sizeof(List));
if (newNode == NULL) return 0; //分配空間失敗
newNode->data = e;
cur = *lptr;
prior = *lptr;
while (cur != NULL && cur->data < e){//查找插入的位置
prior = cur;
cur = cur->next;
}
if (cur == *lptr){
//插入到鏈表的頭部
newNode->next = *lptr;
*lptr = newNode; //lptr指向鏈表的第一個元素
}else{
//插入到prior之後
prior-> = newNode;
newNode->next = cur;
}
return 1;
}
用C語言寫的,望樓主採納
G. 寫出一個順序存儲的有序(升序)線性表中插入一個新元素,並仍保持線性表有序的演算法,求解答
#include <stdio.h>
#include <string.h>
#include"stdlib.h"
typedef int elementype;
typedef struct {
elementype *data;
int length;
} SqList;
int InitList(SqList *L)
{
int t,i=0;
L->data=(elementype *)malloc(sizeof(elementype));
L->length=0;
while(1)
{
printf("請輸入數據(輸入0結束):");
scanf("%d",&t);
if(t==0) break;
L->data[i]=t;
L->length++;
i++;
}
return 0;
}
int mintomax(SqList l)
{
int i=0,j=0,k=0,n,t;
printf("請輸入你要插入的數據:");
scanf("%d",&n);
l.data[l.length]=n;
l.length++;
for(i=0;i<l.length;i++)
{
for(j=i+1;j<l.length;j++)
{
if(l.data[i]>l.data[j])
{
t=l.data[i];
l.data[i]=l.data[j];
l.data[j]=t;
}
}
}
return 0;
}
void DispList(SqList L) {
int i;
for (i = 0; i <=L.length; i++){
printf("%d\t", L.data[i]);
}
printf("\n");
}
int main()
{
SqList L;
InitList(&L);
mintomax(L);
printf("線性表:");
DispList(L);
return 0;
}
H. 1. 編寫一個演算法,實現在順序線性表L中第i個位置之前插入新的元素e
int array[MAX];//順序表
int p;//當前位置
void insert(int e,int i)
{
if(i>p) array[i]=e;
else
{
for(int x=p;x>i;x--)
array[x+1]=array[x];
array[i]=e;
}
}
I. 新元素原子質量
質量數=相對原子質量.
112號元素的相對原子質量就是277.
相對原子質量的演算法:1個112號元素原子的質量除以一個C-12原子質量的十二分之一.
設一個C-12原子的質量為a.
一個112號元素原子的質量為x
x/(a/12)=277 x;a=277:12
J. 若長度為N的順序存儲結構在其第一位置插入新元素的演算法時間復雜度為多少 沒有錢了,望解惑!
A:錯,最外層有四個電子說明是第4主族的,主族元素的氫化物穩定性從上到下遞減,所以XH4在第4主族中應該是最不穩定的。再有,金屬氫化物都是固態的
B:對,最外層有四個電子說明改元素最高正價為+4價,所以最高正價氧化物是XO2
C:錯,第4主族元素依次是碳,硅,鍺,錫,鉛,而X還要在鉛下面,所以應該是金屬
D:錯,鹼性氧化物
另外,虛機團上產品團購,超級便宜