1、建立一个顺序表,要求从键盘输入10个整数,并将该顺序表的元素从屏幕显示出来。
2、用函数实现在顺序表中查找其中一个元素,如果找到,返回该元素在顺序表中的位置和该元素的值,否则提示无此元素。
3、用函数实现顺序表的插入和删除操作。由用户输入待插入元素及插入位置,将完成插入后的顺序表输出;由用户输入删除第几个元素,将完成删除后的顺序表输出。
http://zhidao.baidu.com/link?url=n-XCih6sYPzsKLOjBfe95yImlt3h2i2JqlfLz3hqKm37Cbe3hfLN_7yKz6Y11PmwmeWw5gdBY9nR4VyxOiQsVa
http://wenku.baidu.com/link?url=Mvy4K_4jY79mwQgEO56wovhPAWofpBe-WSVLeKZpOb57OaR-we0pzhvWRi0mkqFIOrowH_9ADt1keZhMsEZwth0YYHpbQnCDdrQZsJ09umW
http://wenwen.sogou.com/z/q328823565.htm
http://blog.sina.com.cn/s/blog_718f7278010163ol.html
http://zhidao.baidu.com/link?url=-8VYQATZcbke936WE_JApDEs9mjflw6oBLMma52VR3j6G5pvpQl-PBbkf8VOhujfc8tmySrdqVvhpV1tuf6gxq
其他的看书吧,都是C的基础题。必须自己会。
谢谢,刚学数据结构还不怎么知道怎么把它与C语言承接起来,脑拙啊,我会好好看书的
对这块熟悉了以后,你会发现链表无非是增、删、改、查、查找或者其组合操作,刚开始应该对于其原理过程理解没有多大障碍,可能对于实现代码有障碍,比如基本输入输出、内存开辟、指针操作,不要紧,马上会熟练,多敲代码~
1·· 在form1上画一个textbox1和一个command1即可:textbox1用于接收键盘输入的10个整数:
Private Sub Command1_Click()
Dim a As String, b() As String
a = Trim(Text1.Text)
b() = Split(a, ",")
For c = 0 To UBound(b)
Print "第" & c + 1 & "个数=" & b(c) & vbCrLf
Next c
End Sub
书上一般不会有直接可以运行的代码,需要具体情况具体替换。
#include
using namespace std;
template
class SqList
{
private:
T *elem; //基址
int length; //当前表长
int listsize; // 总存储容量
public:
SqList(int k=1)
{
elem=new T[k];
assert(elme!=NULL); //抛出异常
length=0;
listsize=k;
}
~SqList()
{
delete[]elem;
}
void zhikongbiao() //重置线性表为空表
{
length=0;
}
int paduanbiaochang() const //判断表长
{
return length;
}
bool fanhzhi(int i, T&e) //用e返回第i个元素的值
{
if (i<1 || i>length)
return false;
e=*(elem+i-1);
return true;
}
bool fanhzhi(T e, bool (*eq)(T T)) const; //
{
int i=1;
while (i<length && !eq(*(elme+i-1),e))
i++;
if (i<=length)
return i;
else
return 0;
}
bool fanqianqu( T e. bool (*eq)(T ,T ), T &per_e )
{
int i=fanhzhi(e, eq);
if (i<1) //没找到 或者是第一个
return false;
else
per_e=*(elem+i-2);
return true;
}
bool fanhouji(T e, bool (*eq) (T, T), T &next_e)
{
int i=fanhzhi(e,eq);
if (i==0 || i>=length) //没找到或者是最后一个元素
return false;
else
next_e=*(elme+i);
return true;
}
bool charu( int i, T e)
{
int *te;
if (i<1 || i>length)
return false;
if (length= listsize)
{
te=new[listsize *2 ];
for (int j=0; j<listsize; j++)
te[j]=elem[j];
delete[]elem;
elem=te;
listsize*=2;
}
int *q;
q=elem+i-1;
int *p;
for (p=elme+length-1; p>=q; p++)
*(p+1)=*p;
*q=e;
++length; //加加表长
return true;
}
}