次代码基于《数据结构》
例子:
在链表头部依次插入1,3,5,7,9,并输出1,3,5,7,9
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
//----- 线性表的单链表存储结构-----
typedef struct LNode{
int data;
struct LNode *next;
}LNode, *LinkList; //这里给结构体起个别名
typedef int Status;
Status ListInsert_L(LinkList &L,int i,int e){ //在带头结点的单链线性表L中第i个位置之前插入元素e。
LinkList p;
LinkList s;
p=L; //L的地址传送给了p。
int j = 0;
while(p&&j<i-1){ //寻找第i-1个结点。
p=p->next;
j++;
}
if(!p||j>i-1) return 0; //i小于1或者大于表长加1。
s=(LinkList)malloc(sizeof(LNode));//生成新结点。
s->data=e; //插入L中。
s->next=p->next;
p->next=s;
return 1;
}
int main() {
LinkList A;
A=(LinkList)malloc(sizeof(LNode)); //A链表初始化申请空间建立新的结点。
//A->next=NULL;
//A->data=0;
//cout<<A->data;
for(int i=1;i<=9;i+=2){//插入1,3,5,7,9.并按递增输出。
ListInsert_L(A,1,i);
A=A->next;
cout<<A->data<<" ";
}
return 0;
}