概述
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct NODE {
int n;
struct NODE* next;
}NODE;
void Create(NODE* head, int n) {//尾插法创建单链表
NODE* q = head;
for (; n > 0; n--) {
NODE* p = (NODE*)malloc(sizeof(NODE));
if (p) {
int s;
scanf("%d",&s);
p->n = s;
q->next = p;
q = p;
}
}
q->next = NULL;
}
void Output(NODE* head) {//链表的遍历
NODE* p = head->next;
while (p) {
printf("%d ", p->n);
p = p->next;
}
}
void Insert(NODE* head, int X) {//在链表相应位置处插入结点
NODE* q = (NODE*)malloc(sizeof(NODE));
if (q) {
q->n=X;//准备好待插入结点q
NODE* p = head;
int t=1;
while(t){
if(X>=(p->n)){
if(X<=(p->next->n)){
t=0;
break;
}
}//当向“1,3,5”中插入2时,采用if下的情况
else{
t=0;
break;
}//当向“3,5,7”中插入1时,采用else下的情况
p=p->next;
}
q->next = p->next;
p->next = q;
}
}
int main()//分成4步:
{
int elenum;
scanf("%d",&elenum);//1.输入单链表的结点个数elenum;
NODE* head = (NODE*)malloc(sizeof(NODE));
head->next=NULL;
if (head != 0) {
Create(head, elenum);
}//2.创建有elenum个结点的单链表,头节点是head;
int X;
scanf("%d",&X);
Insert(head,X);//3.首先输入待插入的数据X,然后调用插入函数Insert;
Output(head);//4.最后输出最终的结果。
return 0;
}
最后
以上就是沉静口红为你收集整理的西工大NOJ数据结构理论——001.顺序表的插入运算(耿2.4)的全部内容,希望文章能够帮你解决西工大NOJ数据结构理论——001.顺序表的插入运算(耿2.4)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复