线性表 单向循环链表的操作(C语言)

来源:百度知道 编辑:UC知道 时间:2024/06/14 15:45:06
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
typedef int DataType;
#define TURE 1
#define FALSE 0
#define NULL 0
typedef struct Node
{
DataType data;
struct Node *next;
}SLNode,*LinkedList;

LinkedList LinkedListInit()
{
LinkedList L;
L=(LinkedList)malloc(sizeof (SLNode));
L->next=L;

return L;
}

int LinkedListLength(LinkedList L)
{
LinkedList p;
int j;
p=L->next;
j=0;
while(p!=L)
{
j++;
p=p->next;
}
return j;
}

void LinkedListInsert(LinkedList L,int i,DataType x)
{
LinkedList pre, p ,s;
int j;
pre=L;
j=1;
p=L->next;
while(pre&&j<i)
{
pre=p;
p=p->next;
j++;
}
if(pre==L)
{
printf("error");
exit(0);
}
s=(SLNode *)malloc(

这是将数据写入链表 你的程序比较乱而且没有注释改起来比较费劲,
你第二个函数的功能是计算一个节点数据中字符串的长度还是计算链表中元素的个数?表达不明确!

SLNode *LinkedListInit()

{
int N
LinkedList L;
L=(LinkedList)malloc(sizeof (SLNode));

do{
printf("Please Enter Data:");
scanf("%d",&L->data);//添加数据到链表
L->next=L;
printf("停止输入数据请按0继续请按1!");
printf("Enter:");
scanf("%d",&N);
}while(N!=0);
return L;
}

你这个程序主要在LinkedListInit();中创建链表,可以自己输入数值,然后返回链表的头就可以了,具体的你自己试着改下