数据结构求代码 实现单链表的基本运算 要求是:依次用头插法插入a、b、c、d、e元素 求代码!!

如题所述

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define elemType char
#define status int
#define OVERFLOW -1
#define ERROR 0
#define OK 1

/* 单链表数据结构 */
typedef struct lNode {
elemType data;
struct lNode *next;
} lNode, *linkList;

/******************************** 以下为函数声明 ********************************/
void initList (linkList *L); /* 初始化 */
status listInsertNode (linkList L, elemType e); /* 单链表第1个位置插入新元素 */
status listPrint (linkList L); /* 输出链表 */
/******************************** 以上为函数声明 ********************************/

/* 初始化 */
/* 操作结果:构造一个空的单链表L */
void initList (linkList *L) {
*L = (linkList) malloc (sizeof (struct lNode)); /* 产生头节点,并使L指向此头节点 */
if(!*L) /* 内存分配失败 */
exit (OVERFLOW);
(*L)->next = NULL; /* 指针域为空 */
}

/* 单链表指定位置插入新元素 */
/* 操作结果:在带头结点的单链表L中第1个位置之前插入元素e */
status listInsertNode (linkList L, elemType e) {
int j=0;
linkList p=L,s;

/* 生成新结点,并插入L中 */
s = (linkList) malloc (sizeof (struct lNode));
s->data = e;
s->next = p->next;
p->next = s;

return OK;
}

/* 输出链表 */
status listPrint (linkList L) {
linkList p = L->next; /* p指向第一个结点 */
while (p!=NULL) {
printf ("%c\n",p->data);
p = p->next;
}
return OK;
}

int main (void) {
linkList L;
elemType *e;

/*初始化链表*/
initList (&L);
/*头插法插入5个元素*/
listInsertNode (L, 'a');
listInsertNode (L, 'b');
listInsertNode (L, 'c');
listInsertNode (L, 'd');
listInsertNode (L, 'e');
puts ("已在链表中插入a~e的5个元素!");
putchar ('\n'); 

/*打印链表*/
puts ("当前链表内容为:");
listPrint (L);
putchar ('\n');

getch ();
return 0;
}

运行结果

追问

在吗?方便的话可以帮我看下我的第一条新提问吗?就是这个头插法,我想照着原来那个模版改,请问怎么改呀?

温馨提示:答案为网友推荐,仅供参考