链式顺序表插入元素
记录下平时的一些作业,防止后面忘了找不到了(hh
#include <stdio.h>
#include <malloc.h>
const int maxn = 1e3 + 1;
struct Node {
int data;
struct Node* next;
};
typedef struct Node* List;
List creatlist() {
struct Node* headnode = (struct Node*)malloc(sizeof(struct Node));
headnode->next = NULL;
return headnode;
}
List tailins(List L,int x) {
List s, r;
r = L;
int y;
for (int i = 0; i < x; i++) {
scanf("%d",&y);
s = (struct Node*)malloc(sizeof(struct Node));
s->data = y;
r->next = s;
r = s;
}
r->next = NULL;
return L;
}
List insect(List L, int x,int o) {
List tmp = (struct Node*)malloc(sizeof(struct Node));
tmp->data = x;
List pre = L;
for (int i = 0; i < o; i++) {
pre = pre->next;
}
tmp->next = pre->next;
pre->next = tmp;
return L;
}
int find(List L, int x) {
List p = L->next;
int cnt = 0;
while (p&&p->data<=x) {
p = p->next;
cnt++;
}
return cnt;
}
int main() {
int n,x;
List L;
L=creatlist();
scanf("%d",&n);
L=tailins(L, n);
printf("请输入插入元素\n");
scanf("%d",&x);
int o=find(L, x);
L=insect(L, x, o);
List p = L->next;
while (p != NULL) {
printf("%d ",p->data);
p = p->next;
}
return 0;
}